{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import json\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SepalLength</th>\n",
       "      <th>SepalWidth</th>\n",
       "      <th>PetalLength</th>\n",
       "      <th>PetalWidth</th>\n",
       "      <th>Species</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>129</th>\n",
       "      <td>7.2</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.8</td>\n",
       "      <td>1.6</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>4.9</td>\n",
       "      <td>2.4</td>\n",
       "      <td>3.3</td>\n",
       "      <td>1.0</td>\n",
       "      <td>Iris-versicolor</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76</th>\n",
       "      <td>6.8</td>\n",
       "      <td>2.8</td>\n",
       "      <td>4.8</td>\n",
       "      <td>1.4</td>\n",
       "      <td>Iris-versicolor</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>5.3</td>\n",
       "      <td>3.7</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.1</td>\n",
       "      <td>Iris-setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>5.6</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.1</td>\n",
       "      <td>1.3</td>\n",
       "      <td>Iris-versicolor</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86</th>\n",
       "      <td>6.7</td>\n",
       "      <td>3.1</td>\n",
       "      <td>4.7</td>\n",
       "      <td>1.5</td>\n",
       "      <td>Iris-versicolor</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>5.7</td>\n",
       "      <td>2.8</td>\n",
       "      <td>4.5</td>\n",
       "      <td>1.3</td>\n",
       "      <td>Iris-versicolor</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>5.5</td>\n",
       "      <td>2.6</td>\n",
       "      <td>4.4</td>\n",
       "      <td>1.2</td>\n",
       "      <td>Iris-versicolor</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     SepalLength  SepalWidth  PetalLength  PetalWidth          Species\n",
       "129          7.2         3.0          5.8         1.6   Iris-virginica\n",
       "57           4.9         2.4          3.3         1.0  Iris-versicolor\n",
       "4            5.0         3.6          1.4         0.2      Iris-setosa\n",
       "76           6.8         2.8          4.8         1.4  Iris-versicolor\n",
       "48           5.3         3.7          1.5         0.2      Iris-setosa\n",
       "9            4.9         3.1          1.5         0.1      Iris-setosa\n",
       "88           5.6         3.0          4.1         1.3  Iris-versicolor\n",
       "86           6.7         3.1          4.7         1.5  Iris-versicolor\n",
       "55           5.7         2.8          4.5         1.3  Iris-versicolor\n",
       "90           5.5         2.6          4.4         1.2  Iris-versicolor"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "url = \"https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data\"\n",
    "iris = pd.read_csv(url, names=[\"SepalLength\",\"SepalWidth\",\"PetalLength\",\"PetalWidth\",\"Species\"])\n",
    "iris.sample(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Iris-setosa        50\n",
       "Iris-virginica     50\n",
       "Iris-versicolor    50\n",
       "Name: Species, dtype: int64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.Species.value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Distribution of the three classes (Species) in this problem is euqally distributed. Accuracy would a good measure of the performance for model evaluation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 150 entries, 0 to 149\n",
      "Data columns (total 5 columns):\n",
      "SepalLength    150 non-null float64\n",
      "SepalWidth     150 non-null float64\n",
      "PetalLength    150 non-null float64\n",
      "PetalWidth     150 non-null float64\n",
      "Species        150 non-null object\n",
      "dtypes: float64(4), object(1)\n",
      "memory usage: 5.9+ KB\n"
     ]
    }
   ],
   "source": [
    "iris.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x113b68e10>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nn4Zs21U6+8477+xROnvNmjU9+m3ZsoXGxkZyc3Opq6vj3HPP5ZZbbuGll15i5syZruNauXIla9eu\n5cgjj2TcuHEsXbqUioqKwPvNzc1ce+21vPrqqxx77LGBukgnnXQSS5Yswefz8de//pVbb72VefPi\nV1XWmP7mtQRFNiaksy4o9JZgitcvubfS2VOnTmX//v187Wtfc11P4bLLLuP888/nzjvv7FE6O9g3\nvvENcnNzAWhoaOD55/21Br/yla9w6KGHhh3X8OHDASgtLaWpqalHUHj99dcZP358YOxdZbV37drF\nlClT2LBhAyLC/v37vf4ojElZXhaw6Y/zRarJuttH/ZFgSkTpbK/H6M2AAQMC3+fm5tLe7u0z3377\n7ZxzzjmsWbOG//mf/+Gzzz6L+NjGpKNsTEhnXVBIZo3zWEpn92bcuHGB1dpefvll/vnPf0Y1vjPP\nPJNXX32V999/HzhQVnvXrl0cddRRAMyaNSuqfRuTjtJ1TYRYZO4nC6OquqDHPULovxrnsZTO7s1P\nf/pTLr/8cp588knOOusshg0b5rqqW1+Ki4upr6/n61//Op2dnRx22GHMnz+fH/3oR0yZMoW7776b\niy66KOL9GpMIkTyR7NYX+s4pJPN8kSz9Ujo7nuJROjvTHm/ft28fubm5+Hw+XnvtNb7zne+watWq\nZA8rwEpnm3gLTgCD/2RdU1vcZ7IYwOcDVejowNP2mXC+SJnS2anIS4IpnXzwwQdcdtlldHZ2kp+f\nz29/+9tkD8mYhIokAezW1y2dFm77TDtf9CUrg0KmOeGEE8Iuz2lMJookARxJUjiTE8heZUyiOd1u\ng2UL+72YRIgkARxJUjiTE8heZURQOOigg2hpabETUIpRVVpaWjjooIOSPRSTYSJ5Itmtr88HzmM+\nfW6fbTIiLA4fPpwtW7bQ3Nyc7KGYIAcddFDggTlj4qW3J5LdEsM1tcVRzT7KRhkx+8gYYyCyWUnZ\nxuvso4y4fWSMMWDrJMSDBQVjTMbIxrIU8WZBwRiTMbKxLEW8JSwoiMiJIrKq21eriNwU1EdE5P+J\nyEYRWS0ipyVqPMZkm4bWRuqapnH5xhrqmqbR0Br7Yk+pLpJZScZdwsKnqq4HSgFEJBf4CHg+qNsF\nwAnO1xnAI86/xpgYNLQ2Ut88izZtA2BHewv1zbMAqBgS+/KwqcrrOgkmvP66ppoI/E1VNwe1Xww8\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113aed0f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "species = iris.Species.unique()\n",
    "colors = sns.color_palette(\"hls\", 3)\n",
    "for i, v in enumerate(species):\n",
    "    df = iris[iris.Species == v]\n",
    "    plt.scatter(df[\"PetalLength\"],df[\"SepalLength\"], color = colors[i], label = v)\n",
    "plt.legend(loc = \"upper left\")\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y = np.where(iris.Species == \"Iris-virginica\", 1, 0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Sigmoid Activation Function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x1177245c0>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113a9e400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p = np.linspace(-7, 7, 100)\n",
    "def phi(p):\n",
    "    return 1 / (1 + np.exp(-p))\n",
    "plt.plot(p, phi(p))\n",
    "plt.xlabel(\"Linear regression output\")\n",
    "plt.ylabel(\"Sigmoid\")\n",
    "plt.title(\"Representation of Probability of prediction of 1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score, confusion_matrix, roc_curve, roc_auc_score\n",
    "\n",
    "from mlxtend.plotting import plot_decision_regions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(105, 2)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = iris.iloc[:, [2, 0]].values\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30, random_state = 340)\n",
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>actual</th>\n",
       "      <th>pred</th>\n",
       "      <th>match</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    actual  pred  match\n",
       "24       1     1   True\n",
       "38       0     0   True\n",
       "42       1     1   True\n",
       "27       1     0  False\n",
       "8        0     0   True\n",
       "3        1     1   True\n",
       "16       0     0   True\n",
       "11       0     0   True\n",
       "0        0     0   True\n",
       "34       0     0   True"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = LogisticRegression()\n",
    "lr.fit(X_train, y_train)\n",
    "y_test_pred = lr.predict(X_test)\n",
    "outcome = pd.DataFrame({\"actual\": y_test,\"pred\": y_test_pred}) \n",
    "outcome[\"match\"] = outcome.actual == outcome.pred\n",
    "outcome.sample(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.91111111111111109"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy_score(y_test, y_test_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x117bca320>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAesAAAF3CAYAAACFV2OZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VNXWwOHfnsmk99BCAGnSRFCqFBVEERCwghVRERW5\nFviUYkFFULkWLCiCIoIKCKgIXgSUiA0BQaog0ksIkD6pkyn7+yMQUmaSIckkk7De58lzb845s8+a\nELNm77POOkprjRBCCCG8l6GqAxBCCCFEySRZCyGEEF5OkrUQQgjh5SRZCyGEEF5OkrUQQgjh5SRZ\nCyGEEF5OkrUQQgjh5SRZCyGEEF5OkrUQQgjh5SRZCyGEEF7Op6oDKGTFCul9KoQQNdSKTXXz/k+X\nLlUbiBcZNAjlznEysxZCCFF5JFGXiSRrIYQQHpc/qxZlIslaCCGER8nyd/lJshZCCOF5kqjLxbsK\nzJywGgwcj4oix2Sq6lBc8rdaaZCUhMnhqOpQhBDCq8jyd8Xw+mR9PCqKkOhoGoeGopRbRXOVSmtN\nktnMcaBJQkJVhyOEEF5Dlr8rjtcvg+eYTER5aaIGUEoRFRrq1TN/IYSobJKoK5bXJ2vAaxP1Wd4e\nnxBCVCZJ1BWvWiTrqrbqxx9p2bkzzTt04LXp06s6HCGE8H6SqCuUJOtS2O12Rj/9NN8vWcLuDRtY\n+NVX7P7nn6oOSwghxAXE6wvMzsc111yD2UmRV2jt2sTGxpZpzE1bttC8aVOaNm4MwB233MK3K1fS\nplWr8oQqhBA10opNdWVW7QE1KlmbExLYXKtWse2dylGlHRcfT8OYmPzvG9Svz8YtW8o8nhBC1FSS\nqD1HlsGFEEIILyfJuhQx0dEci4vL//74iRPEREdXYURCCOF9pPmJZ0myLkXnDh3Yd+AAh44cITc3\nl0Vff83g/v2rOiwhhPAacquW59Woa9ae4OPjw4z//pfrb70Vu93OA3ffzSWtW1d1WEII4V0kUXtU\njUrWobVrOy0mC61du1zjDujblwF9+5ZrDCGEqIlk+bty1KhkXdbbs4QQQpw/Wf6uPHLNWgghxHmT\nRF25JFkLIYQ4L5KoK58kayGEEOdPEnWlkmQthBDCbVJQVjUkWQshhHCLLH9XHUnWbnjgP/+hzsUX\n07Zbt6oORQghqpYk6iohydoN9915J6uWLq3qMIQQQlygamSyTkxK4oah95KUnFwh413VoweREREV\nMpYQQlRH8kStqlUjk/VH8xaxcUs6sz9dWNWhCCFEtSeJuurVuGSdmJTEvIVrqFdnBvMWrqmw2bUQ\nQlyIJFF7hxqXrD+atwirbSD+/i2x2gbK7FoIIUS1V6OS9dlZdUjwMABCgofJ7FoIIcpI7qn2HjUq\nWZ+dVfv41ALAx6dWhcyu7xwxgm59+7J3/34aXHIJcz77rCLCFUIIryX3VHuXGvXUrR/W/Y7NdpKE\nxIVFttdj4tjRZR534Zw55Q1NCCGqDUnU3qdGJevY5QuqOgQhhKgZJFF7lRq1DC6EEKJ85Dq1d5Jk\nLYQQApDlb29WLZK11rqqQyiRt8cnhBBuk0Ttlbw+WftbrSSZzV6bELXWJJnN+FutVR2KEEKUmSx/\nezevLzBrkJTEcSAhMbGqQ3HJ32qlQVJSVYchhBBlIsvf3s/rk7XJ4aBJQkJVhyGEEDWSJOrqweuX\nwYUQQniYJGqvJ8laCCGE8HKSrIUQ4gIlT9SqPiRZCyHEBUgSdfUiyVoIIS4wkqirH0nWQgghhJeT\nZC2EEBcQaX5SPXk0WSulxiil/lZK7VJKLVRK+XvyfEIIIVyTe6qrL48la6VUDPA40Elr3RYwAnd4\n6nxCCCHcIIm6WvL0MrgPEKCU8gECgRMePp8QQggnZPm7evNYstZaxwFvAEeBeCBNa73GU+cTQgjh\nnCx/V3+eXAaPAG4EmgD1gSCl1D1OjntIKbVZKbV59qpVngpHCCEuSBWZqO12G1arpdzjiPPnyQd5\nXAsc0lonACilvga6A58XPEhrPRuYDcCKFd75HEwhhKjOypmot2xZxfLl09mxIxaAmJiW9O8/in79\nHsZo9PrnQdUInrxmfRS4QikVqJRSQB9gjwfPJ4QQooCKuE79zTdvMnPmKHr1uocvv0zn669zefjh\nGaxfv5RXX70Fm81aAZGK0njymvVGYCnwF7DzzLlme+p8QgghzqmI5e+DB7exbNkbTJv2G717DyMn\nJ4PJk2/joosu5aWX1mCxZPPdd+9VUMSiJB6tBtdav6C1bqW1bqu1Hqa1losdQghRWcq5/P399zMZ\nMGA0UVExAKxePZ9//01h9ep5+PiYuPvul1m58gMcDkdFRCtKIB3MhBBCOPXvvxvp2LE/AGZzIrGx\n3xERMZPY2O8wm5No2bIrGRnJpKcnVXGkNZ8kayGEqGEq6kEdBoMx/5r06tXzsdsH4uvbErt9IKtX\nz0Nrjd1uw2AwlvtcomRSxieEEDVIRT5Rq337a1m/fin16zcnNvY7AgIWAxAQcC+xsUOpV68BMTEt\nCA6OqJDzCdckWQshRA1R0Y++7NfvEf7v/zpjtTqw2wdiNNYCwGishdXah48/fpL77ptG3g0/wpMk\nWQshRA3giWdU16vXhNGjZ/P663fi5xeJxTIHpQzk5prJzj5FeHgMvXoV63UlPECuWQshhHCpe/db\nmDFjJ3363E5AgBUfnwzatevMiy+uZO7cAzKrriRKay9qGiYdzIQQ4rxJ7+/qa9Ag3Pq0I8vgQghR\njdXURG2329i162dSU08TFRVDmzY9MRgu3MVgSdZCCFHd1bBEvXbtp3zxxfNERERTt24Tjh//h5yc\nTO6//3W6dbu5qsOrEpKshRCimqqJz6j+/vsP+eab13nmmWU0b94RAK01f//9K2+8cScOh50ePW6r\n4igr34W7piCEENXY+S5/m82JvPTSrZjNVdttLC5uL/fc04S4uH3F9mVnZ/DZZ8/w4ouraN68Y37M\n6enJtG17FRMnfs2cOWOw221VEHnVkmQthBDV1Xksfxfs612VZs2agNkcyaxZ44rtW79+KZdcchX1\n618MFI+5Zcuu1KrViK1b11RqzN5AkrUQQlQz57v87ayvd1WIi9vLrl07MZnmsmvXzmKz61OnDtO4\ncTvAdcyNG7fj9OnDlR16lZNkLYQQ1UhZqr+d9fWuCrNmTcDhuAuDoR0Ox13FZtchIZEkJcUBrmNO\nSjpOcHBkpcde1SRZCyFENVGWRH12hhoQcC9wtq935c+uz86qjcZRABiNo4rNrrt3v40//via+PgD\nTmM+dGgHe/b8TqdON1Rq7N5AkrUQQlQDZb2f+uwMtWBf78qYXRctaDs3q44GwGCILja7joqqz9VX\n382LLw7Aar2uSC/y3rz88iAGD36SwMAQj8bujSRZCyFEdVGG+6m3bVuH3b6AtLRO+V92+wK2bVtX\n8fEVULQ4bN++rcAcrNaY/C+Yc2b7OQ8+OB2LJYeEhEnExdUlPr4hx4/XJiHhJcDE0KHPeTRubyXt\nRoUQohrwxIM6PMVsTmT8+KEYjTOx20cxbdoSQkOjzmuMkycP8vPPC0hLy+tg1qvXPURFxXgo4qoj\n7UaFEKKGqE6JGs4tvQcEtCQjI2/JfciQsec1Rr16Tbn99gtzFu2MLIMLIYQXq26J2lsK2moaSdZC\nCCEqTFUVtNV0sgwuhBBeqjr2/s4raDtBWtqCItvrn/dSuDhHCsyEEMIL1dRHX4rC3C0wk2VwIYTw\nMpKoRVGSrIUQwhtJohYFSLIWQggvUh2vUwvPk2QthBBeQpa/hSuSrIUQwgt4OlEX7dUtqhdJ1kII\n4S08OKMu2qtbVC+SrIUQoop5+jr12a5iEREzpZtYNSXJWgghqlBlXKc+21XM17eldBOrpiRZCyFE\nVfNgopZe3TWDJGshhKjBpFd3zSDJWgghqkhlPFErr1f3AtLSOuV/2e0L2LZtncvXSOW495EHeQgh\nRBWorEdfTp26/LxfU7ByXB6+4R1kZi2EEJXMm59RLZXj3kmStRBC1CBZWemcPn2E7OyMMr1eKse9\nkyyDCyFEJfLUPdWHDu1g8eIp/PXXKoKCwsnMTKVLl8HcfvtzNGjQyq0xzlWOLwbOVo4P5frrhxMa\nGuWRuIV7ZGYthBCVxFP3VO/e/RvPP9+H1q17MHfucT755Chz5hyhceN2TJx4FQcO/OXWOFI57r0k\nWQshRCUoT6IuqTrbbrfz1lvDeOKJTxk8+AlstlxeeulWHA4Ht946jpEj3+Xtt+8jLS2h1ArvslSO\ni8ohy+BCCFFZyjijLqk6e+vW1YSF1aZz5xucHnvllbezcOGLfP75S6VWeJelclxUDplZCyGEh5Xn\nOnVp1dkHD26jXbtrXB6rlKJ16+5s2LBGKryrMUnWQgjhQeW9Tu2qOjspKY6tW38gKek4WVnmEo89\neHAnWreXCu9qTJbBhRDC08qYqJ1VZ69ZM5jdu9eyd+8fNG16Oamppzh2bA+BgSH88ccmAgKW5B8b\nGzuUjh2v4dChbTRo8FGh7VLhXb3IzFoIITykvLdpFa3O1jqHhIQ92O2aOXOOMmXKWmbM2EWbNj1Z\nuXIWycmZGAx5CdhorIXNNoCXX74JP7+2+Pldlr9dZtfVj8yshRDCAyriNq286uwTpKUtACA9/TB+\nfv7Y7T4EBARjNicyffrD/Oc/HzNmTGdycjYTHx+Dr28YdnsO2dkJOBw2IiIiSEvrVGTs+tJKtBqR\nZC2EEBWsou6nLlidnZ2dwQMPNGDmzN2Eh9cBzlV+r1+/gi++OM27745g1651REQEERl5MX363E+X\nLoMwGuVPfXUn/4JCCOEJFdz4JDn5BKGhtfMTdeHK71Fcf/1wrr9+JKdPH2LatN8q9Nyi6kmyFkJ4\nPa01v+3ezfZDh/Azmbi+Qwca1a5d1WFVqoCAENLTk7DZrPj4mPKvZwcEtCQjI+8adHR0Q4KCwqo6\nVOEBkqyFEF5t87593PfOO9gdDnpfeikZOTlMmD+f6y+/nFmPPkpIYGBVh1iIp56oFRkZTaNGl7Bp\n03Latr3aaQ/vWrWM9Op1d4WfW1Q9jyVrpVRL4MsCm5oCk7TWb3vqnEKImmX30aMMmDyZ9x56iKE9\ne6KUAiAjO5snPvqIwVOn8uPkyRiNxiqONI+nH305ZMgzvP/+Q/TocU+xHt5mcxhm828895x0IauJ\nlNba8ydRygjEAV211kdcHrhiheeDEUJUG3e+/jodmzdn5a+/Yk5LK7RPa82+9HQ+f+opBnftWkUR\nnuOph3QU9eOPc5kx42FMplB8fUPQ2k5OTjJa22nevDuvv77Wo+cXFWvQIJQ7x1XWMngf4ECJiVoI\nIQpIz8rif5s3M3PUKBZ99x2bw4pfi21isTB37VqvSNaAxxM1wLXX3k/nzgNZu/ZTDh/ega+vP126\nDKZjxwFes8IgKl5lJes7gIWVdC4hRA2QaDYTGRJCeHCwy2P8jEbikqq+z7WnnlHtSlhYbW655elK\nPaeoWh5P1kopX2AwMNHF/oeAhwBmPfooD/Xr5+mQhBDVQGRICMnp6aRnZbk8Jtdup254eLnOc/Dk\nST5ft46TKSlER0QwrHdvGtd1P/mu2FSX+OTjrEvZSeqWT4mIiKZ372HUrdu4XHEJUVBltBvtD/yl\ntT7lbKfWerbWupPWupMkaiHEWWFBQVzbvj3zYmOd7tdak5Cdzb29e5dpfJvdzqMzZ9L1qadIycjg\nkkaNSExPp9PYsTw+ezZ2u73UMZZtiOKDldN4+vOHycxMpVGjS0hPT2Ts2E589NETbo0hhDs8XmCm\nlFoErNZazy31YCkwE0IUsO3gQa6bNIlwpdhX4L7qXK0Zl5jIR5mZpC5ejMnn3CLhNWPHFitGAwgN\nCyP2rbfyvx/z8cfsPHKEbyZOxGKzMXz6TOaPGYWP0cjgKVPo1qoVrw0fXmJ8g6d8wVFLEhMnfo3N\nZmH69IcZM2Y2RqMPU6YMplWr7gwf/qrb7/ds+9AxY2bLQzYuEO4WmHl0Zq2UCgKuA7725HmEEDXT\nZU2b8tWECRzPzCTo8GGi4+Koc/w4QYcO8Wl2Nh0aNiyUqAHMaWlsDgsr9lUwgZ9OTWXu2rV8+fTT\nhAQG8tHqdWz8F2avXkdYUBBLxo9n1qpVJKenu4xtfqwPsTtWMm7clwQGhuS3/ly9eh5BQWGMG7eY\nVatmkpGR4vb7LTiGEAV5NFlrrTO11lFa6+Ifc4UQwg1XtW1LxpIlLJ44kf/ceivj7ryTHe+9R+rS\npfz6zjtlGvObDRsY2KkTUaGhJJrNzIvdTr2I6cyL3U6S2Uyd8HCuu+wyvt240enrV2yqyx9719Gl\n202EhEQWaf35HWZzEhERdWnf/lo2bvzWrZicjSHEWfKITCGE1zMajdzQuTPPDh3KUzffTOuGDcs1\nXkpGBvUjIwH4aPU6rPZB+PtejNU+iNmr1wEQExVFSkaGyzEyosKIjKwPnHuUpa9vy0KPn4yKiiEj\nI9WtmFyNIQRIshZCXIAa16nD9sOH82fVIQF3ARAScFf+7HrboUM0rlOn2GvP3qZVt24TDh3anj8j\nDgi4Fzjb+jNvZnzw4Da3qsJLGsOZ48f3MmfOWJ5//jomTx7IqlWzyM52/cFCVH+SrIUQF5ybrriC\nvw4cYPKir7DaB+FjzCvm8jFGYbUP4oUFS/nn+HEGdu5c6HUFu5RdccVN7N+/mUWLphVr/Wm3D2TB\ngimcOPEvHTsOKDWes7PqomM4m10vWfIqEydeicnkzy23PE2fPvfx11+rePTRVhw6tL0cPxXhzeRB\nHkKIaslV1Xe82UwnJ8eHFuiA5u/ryxv338/DH8wkPGgrVttClFJorbFYs/j4h3jmPv4YviZT8YHO\ndCnz8wvg/vtf54MPHiUoqBE22xf5Y1itGaxZc5Qnn5xLdraZV14pucJ727Z12O0nSEtbUGR7fYYM\nGZv//a+/fsnatXN5553tREZGF6ge/5jt239k8uQbeP/93QQGhrrxExTViSRrIUS1dLbqu6hOwOY5\nc0p9/fA+ffD39WXi/PmEBiqa1avHvhMnyM7N5YNRY7m1e/dCxzt7SEefPvdhMvnz2WfPEBjoT716\nzThx4l9ycx2MGvUF3bvfwpIlb+VXeBdMvAVNnVr6wze01nz11TRGjnyXyMhooHD1+JAhY/n996Ws\nW/c5AwY8Wup4onqRZC2EuGDdfuWVDOnRg9/37MnrYBYZSfdWrTAY3L9CeNVVd9Cz51B27/6N1NRT\nREZG06pVdwwGQ5EK71Fcf/3wMt8/nZQUR2LiMS6/vC9QtHo8b+xeve5h5cr3JVnXQJKshRAXNIPB\nwJWXXFLiMaU9+tJgMNC27VXFtp+9Fh0Q0JKMjIElzq5LY7FkERgYlv9BwtnYrVt3Ijc3u0zjC+8m\nyVoIUeNprfOe4PX99+w4fBg/Hx9u6NyZ0QMG0CImpsTXlvUhHecqvBcDZyu8h5Z5dl2rVkMyM1NI\nSDiKn1+g07GzshJo1KhtmeIV3k2qwYUQNZrD4WDkjBlMmDePoT168Ntrr/Htc88R7O9Pj/Hj+e7P\nP12+tjzPqD6fCm93+PkFcPXVd7N06WtOx7Zae7Ny5Qf06/dwmcYX3k1m1kIIj3K3V/f5jnEqJYV6\nKSk0iIgoNm5BH65axd9HjxLl48N7CxbwXoF9tQwGbpk6lcNz5lA/qvhs15yVyvSfZzGm1fn36i6t\nwttZH/C4uL2MH9+PadPWEBNz8bk4zhw7cuQ0pk4dTGbm90AIaWkL8qvPMzKOERkZQ9Oml51XnKJ6\nkGQthPAol1XbThL4eY0RFkantLQSK7+11ryzYgWfPPYYT7z5ptM4aufk8NGaNbxw552Ftq/YVJfV\nfy0stZLbldIqvItWcgPMmjUBszmSWbPGMXnyN8WO/f335bz66q8sWDCJX35ZSERENNnZZkJDQ7j3\n3hlce+395xWjqD5kGVwIUWMdT0wkLTOT7q1buzwmws+PtdsLNxNZsaku5qxUYvdt90ivbmd9wOPi\n9rJr105Mprns2rWTuLh9To8FeOSR95kz5yjjxn3JlCk/MWPG31x33QMo5dYDnEQ1JMlaCFFj2R0O\nTD4+JSYxdea4olYn7PJYr25nfcBnzZqAw3EXBkM7HI67mDVrnMtjAQICgrnoorbUr99ckvQFQJK1\nEKLGalArrwBrx6FDLo9Jy82lW6tW+d/nz6rPo1f3+XDWB3zNmqXs3LkTo3EUAEbjKHbt2snevRs9\nFoeoXiRZCyFqLB+jkUf69eOZzz5Da11s/wGrlaScHB7p1w84V/19dlZdUZXcBTmr5E5JCcPhuBmD\nIa8zmcEQjcNxF2+++YjH4hDVixSYCSE8Kt5sJibJyUzQSd/t8vT7duXpm29m8JQpHMrMpKXVSrDJ\nhANIzskhPiuLZrVq0bx+/UK3aW37dopbvbrLwlmVuNV6CK23YrUWPt/p0xaiohZ4JA5RvZSarJVS\nfsCtQOOCx2utJ3suLCFETREdGup2NXh5+30742sysfy555i9ejUzv/+e7XFxKKUY0LEj82+6iavb\nti12P7U7vbrLypNji5rLnZn1t0AasAWweDYcIYSoeL4mE/8ZOJD/DByI1WbDaDAU7/9dhsYnQlQW\nd5J1A611P49HIoQQlcDkU/jPnqt2ona7nePH92Cz5RIdfTGBgSGVEZ7XxiGqljvJer1S6lKt9U6P\nRyOEEJXIWTtRrTUrVrzL8uXTMRpN+PsHcfr0Ea688naGDXuFkJDISonN4XCwYsU7LF/+NiaTH35+\ngWfiuIN7732F4OCI0gcRNYbLZK2U2gnoM8fcr5Q6SN4yuAK01rpd5YQohBAeVCRRf/jhaA4c+Ivx\n45dy8cV5ZW3JyfEsXjyViROv4rXXfvV4otRaM3PmKI4c2cnEiV/TvHlHAJKSTrB48RQmTryKV1/9\nleDgcI/GIbxHSbduDQQGAf2B5kDfM9+f3S6EEKUKPdMWtOiXs0rueLOZmIMHi33Fm80ejdFsTuSl\nl25l8+aVbN26msmTf+Diizvlb/fx8eWRR2bQsuUVLFnyapnGPp97o//++1d27IjlpZfW0Lx5x/wx\nTCY/Ro36gObNO/HVV6+d79sU1ZjLmbXW+giAUuozrfWwgvuUUp8Bw5y+UAghCnD3YR1wfpXj5VXw\nWvXZ3tvJyS9www2P5V8XLtq/+7bbJjJuXDfuuWcKJpOvW+dx1gO8NKtWfcigQY8TEBDsMo4JE3py\n990v4+NT/BY4UfO40xSl0FPZlVJGoKNnwhFCCM8reK26YO/t48f30qhR3p88Z/27o6ObYTT6YDYn\nuHUeZ2O449ix3bRu3cPlGDExLQBFerp0MrtQuEzWSqmJSql0oJ1SynzmKx04Td7tXEIIUX2duVZd\nsPc21OaXX5YW2362a5jNZiU7OwNf3wC3TrF8+UwyMxtisWzBYunsducxP78gMjJSXMZhteZisWS6\nHYeo/kpaBn8VeFUp9arWemIlxiSEEB5TcPn7XJ/uxQCEhNzP+vXvc9tt/1doe15P7qGEh4fTvHnH\nUivCLZZsPvzwUWJjP8ff/xpstuVkZ6/jyy8ttG/fkxYtSr6nu1u3m4mNnU+TJu2dxhEaGkKLFl0J\nCiq9g5uoGdxZBl+ilOpQ5KuZUkpalQohqpWit2oV7dMdFjYaiyWbadPuKdaT22LpxiefPMUtt4wr\n8Rx2u51XXrmZ/fu3Ubv288TErKZevUU0bnwMP79ePP/8dZw+faTEMfr0uZ/t23/go4+echrH3Lnj\nSo1D1CzuJNwPgA7ADvJu27oU2AWEKaVGaa3XeDA+IUQ14aqvd2hYWLEiM0/0AC+Ns3uqnfXpDg2N\n4ciRvzCZ/iUzcwZKGbBa08nJSSI6ug0dO/YnLm4v48f3Y9q0NcTEXFzoPJs3/4/09ERCQmLIylpO\nSsrXmM3xhIZG4+/vA9RlyZJXuOmmsS7HCA2N4vnnv+Ppp3tgMCwrEIeZnJxkoqPb0KHD9eX+mYjq\nw51kfQIYobX+G0Ap1QaYDIwDvgYkWQshXPf1rqQe4CVxlqjBdZ/unJxMfvllEZs3/w+bzULTph24\n/vqHqF27IQCzZk3AbI5k1qxxTJ78TaHX/vDDHG644TH69BkOwJIlb7Fs2XcMGDCQIUPGkpJykkcf\nbUV8fLzLMQCaNevAggWJ/PLLwjNxWGnWrAN9+47Mj0NcONxJ1i3OJmoArfVupVQrrfVBeeC5EKLa\nOI/e3/7+QfTtO4K+fUcU2xcXt5ddu3ZiMn3Nrl23EBe3r9DMOCHhCI0bXwoUreQexfXXDycioh4+\nPr78/fcOTKblTscoHMeD9O37YBnesKhJ3Llm/bdSaqZS6uozXx8Au888jcvq4fiEEAKrzcbX69cz\n6YsvmLp4MdsPHSrx+K0HDjB18WImffEFz8zfg91hq7BYZs2agMNxFwZDOxyOu5g1q/C145CQKBIS\njgHOK7mzszNIT0/B4bjd5RhCFOVOsr4P2A88eebr4JltVqC3pwITQgiAtdu302TkSN5ZsQKDUqRk\nZDDo5Ze57vnnSSiyxH46NZU+zz3HjVOnkpqZyb4TIXy7cQEjZ9/Ojh0/lTuWs7Nqo3EUAEbjKHbt\n2klc3L78Y6666i7WrPmoQKX5vcDZSu7vWLRoMlr74ePzpMsxhCiq1GSttc7WWr+ptb75zNcbWuss\nrbVDa51RGUEKIaqv4ykpdBoxotBXfFIS1xw7VuprN+/bx51vvEFtPz8yT5/mu7VrWff779QGdv77\nL00ffJBca94Cn8Vq5foXXmD/sWPUBn745RdWrF+CLSuRQGsuL07qy4EDW522/3S3Jei5WXU0AAZD\ndLGZ8dVX30l8/H7eeGM4NtsNhSq5s7Pb8O2304E7ACMWy02AqUJn12Vpbyq8X6nXrJVSPYAXgYsK\nHq+1buq5sIQQ1c3ZHuBFmaBYMdles5lrrNZixxet+p6yeDEv3Xknc776qtgYOiyM0KNH+WbDBm6/\n8kqW/v47kSEhGNLT2RIezqST2bzvqM3tOo2xtevR2m5lyZKpNGvWvVj7T3dbgu7btxXYhNU6p8j2\ncy0//fyOgxtLAAAgAElEQVQCefnlHxk9+lJyc9eSnv4mShnIzTVjs2UDASj1PVbrMqABVmsrDAa/\nQmOUR1namwrvp7TWJR+g1D/AGGALYD+7XWtd8R/bVqwoORghRLXTacQIl1XiJVV+p2Zk0GjECOLn\nzePq0aOdjtH01CnatGzJd5Mm0e+FFxhx3XVMmzuXLw1h9Eu04WOYgY3HWN0glAHmJI5kphAR0QGT\n6SPs9lFMm7YE0IwfPxSjcWb+ttDQqHK/b601u3f/xubNK7HZcmna9HJ69LgNX19/4uL28thjN6DU\n12h9C++9973TArPzZTYneuS9CM8ZNAi3KrXduWadprX+Xmt9WmuddParnPEJIUSJUjIyiAgOJsjf\n3+UxvkYjp8/MzhPMZhrXzbtFa15mNjZ1E/6GJtj0jXyaZsZoMGAw+GCzXV2o4MtZEVhFUEpxySVX\nMnz4q4wY8Sa9e9+Dr2/eeymtSK2sPPVeRNVzJ1n/pJR6XSnVrWAXM49HJoS4oNUKDSUlI4Pk9HSX\nx+TY7TSIyps5NoiKYs+xY9gcDhZmmwg23AZAsOE2FqZDVm4O2dkZBAbm3QYVEHAvP/74LT/88E2x\nIjBPXu91p0itLFwVtMm165rBnWTdlbxeBa8Ab575esOTQQkhREhgIIO6dGH26tVO99u0JiE7mweu\nuw6A+6+9lhn/+x9x6RqbugkfFQGAj4rApm8kLj0dP7/LMZkuAvIKvtLTryYjo1ahIjBPz0jdKVIr\ni6KtUyvjvYjKU2qBmdZabs8SQpTqfFqInkpJwUre9eyCirYmnXT77Vw1cSJRfn50TE3lbCMmu8PB\n0YwM/EwmOl98MTe8NI1PHn8IizWMVNtRUvUC4hyLgLxrx5ps7DqH4IBs0tLORWOxnAashbYBbNtW\n/7yLs8zmRKZPf5gxY2aXeJ3YnSK1snDWOjVv+/m/F+F93KkGr0verLq+1rr/mXaj3bTWFd8TUAhR\nbZ1PC9GSis4KatmgAWsmT+aBd98lNTOT3pdeSnp2Nmu2buWmnj2Z8fDDvLtiDRv/hafnbuXZoa/z\n4Z9z2bRpOR06XI+/fzA7dsQSEtKAxx+fm99ZzBPcrcJeuPCwR87vqnWqqBncaTf6KTAXePbM9/8C\nXwKSrIUQHte+SRM2v/UWf+7bx/ZDh/AzmXhn5EjqRUSQaDYzL3Y79SLeJ3bnE1z/4HOM6TmPpKQT\nbNv2AzZbLv36PczFF3f2aIzO2opKFbaoSO4k61pa68VKqYkAWmubUspe2ouEEKKiKKXo0qIFXVq0\nKLT9o9XrsNoHYXe0yb8+O2TIWKKi6uc/SKMynL1eHBDQkoyMgXKPs6hw7iTrTKVUFKABlFJXAMUv\nTAkhqq345GQ+WrOG7/78E4vVSvsmTRjVvz/dWrWq1Dhy7XZeWriQ/23ejMVq5bIzcWjgw++/Z9uZ\nmfXAzp25pVs35sVuR+vnQEFAxEPExg6lS5e+/P77UrZsWYnVaqFp08vp338ULVt29UjM56qwFwNn\nq7CHyuxaVCh3kvVYYDnQTCn1O1AbuM2jUQkhKs3Pu3YxZNo0bu3WjTcfeIBgf39+2rmTO15/nTuu\nvJLXhg+nMp6w91NWFntSUjidlsZbI0YQ5OfH2u3b6fvCCyilmHTHHTw5eDAZOTks/OUXrnjqaXx9\n7iYqtBYEBWEkiKysljz11BX06TOcESPews8viB07Ypk2bQi9et3DsGFTK/y9lFSFLbNrUVFK7WAG\noJTyAVoCCtgLdNBab6zwaKSDmRCV6nRqKpf85z/EBAfjYy38ED2bw8H+9HTeHzWK4X36lDqWq2rw\nohXezo61OhzsTk4mzMeHxuHh+duTcnI4mZVFrt1OqFIEFki0px2+2LAQFXUpBoMJh8NKcvJuGjfu\nzDvvrC9UnQ3wzDNXc9ttE+nV6273fjhuevbZwZw8eaLY9nr16pdY9OVu9bio2dztYOZWsi72IqWO\naq0bnfcLSyPJWohK9eqSJeyPj2f79u1Oq7NbJCQQEBHBtnfe8ejseurixRw5fZq/tm7Nj0NrzWXH\njvFGrVoMPXGCxkrxl8mUH4fNoQi15jDk3le57bYJfPnlFBITjzF69CwAlix5i2XLvuOmmwYyZMhY\ntmz5ns8+e5bp07dUykpBaYrGJy5MFdlu1Jmq/00XQpTb91u2cMeVV7rcH2IycSI5mfjk5EqPI95u\nJ85mo09AAL7AEa05fWafzZH3JyhAGdi8eSUAW7Z8z5VX3gEUrc7O6+J1+eXXc+rUIdLSEjz6Xtzh\nLD4hSlLWZC0zYCFqAKvdTqCfn8v9SikCfH2x2j17A0iuzVYsDqvWBBgMGJRCAQFALucSNQYDCrDb\n85bvbbZc/PwCAec9sg0GA35+AfnHVyXp4S3Ol8sCM6XUCpwnZQXIBRYhaoAOzZrxw7ZtLvdn22zk\nak39yMgKPe+uw4cZNXMmf+zdi93hQAG3//e/BBX4UFDfxwer1uzJzcVG3swi+uxOg4FTWmPWDjKP\n7OTmm02YTH7MmzeeUaNmFqvOXrt2CFlZCaSlJfLgg03w9fWnc+eBDB78JC1adKnQ91YaqR4XZVHS\nzPoNzvUCL/j1BjDAncGVUuFKqaVKqX+UUnuUUt3KG7AQouKM6t+fD1etItfJzFlrTXxWFg/27YvJ\nx50bR9wTu2MHlz35JCmZmSwZP560RYt484EHiEtOZk9KCrFZWQCYlGJkaCgvJCWRDow0GkHn/cna\nrx10yc3GCowd+zmLF2fwxBPz2LfvT556qhsWS7f86myDIZzExARWrHiXHj2GsGhRGrNm7adFi65M\nnXojP/30WYW9N3dID29RFmUqMHN7cKXmAb9qrT9WSvkCgVrrVJcvkAIzISrdtK++4tl58whVCn/y\nlr6tWpOuNXalSF28uMSl8vMVPHQo9txcis7V08+cUwGX16qFUooMq5X9aWk4tCYS8FUGHFqTiMYB\nBBlNfDjvRH5V9apVH7Jw4WS0VkRGXoJSivT0o1gsKQQEhDBvXhwWS2b+8VOfuZp/j+2hSUQ9fI3n\nPpD4hdXhpbf+rLD3XFBZq8dFzeRugVnFfVwuQikVBlwF3Aegtc4l75KTEMKLjL/1Vj765huic3PZ\narHgD/gbDEwMC2OZwVChiXre2rVYrFZqORzEORk33GIhDdiVmkpIQAD+vr5MHDIEgJnf/0QGDiyW\nLAxa8/T/fUH37rewZMlb+T25hw59lvr1WzJ9+j2YzXvw8wskNzeVfv0e4oEH3sTPL4Dly2fmH6+y\n03k4tBYmh50XI/MX2emRdrpYbBVFErIoC48la6AJkADMVUq1B7YAT2itMz14TiFEGYT7+fFrnTqk\n2e1YtCbKaMSoFMud3DddHl//8QdtGjYk8ehRp/uDDAYaNWxIw1q1mPvEE0SFhGA0GgHo2PxJ0ls1\nY/Xq2ZjNCXTvfovTntw9e97Grl3riIqK4fLL+/Lyy4MYNeoDoHgP7yCHnf5B4UxJjqvQ9ylERStr\nNbg7fIAOwEyt9eVAJjCh6EFKqYeUUpuVUptnr1rlwXCEEKUJMxqp4+OD0Y37kNMyMzl48iRpme5/\n/lZK4c6lN18fH+qEh+cn6hWb6mI0GAkPr4OfX2D+GKtXz8dq7YNSJqzWPgWu+2r8/AIJC6uNUhQ6\nvmAVdkq2FQ04NBy2WjA75LEHwjuVpRocAK314FLGPg4cL9DpbClOkrXWejaQ12JIrlkL4fV2Hj7M\n5EWLWL11K1EhISSlp9P38suZdPvttGvSpMTX3t6zJ8OmT6e2w+F0v8PhYPexY0y87VxH4xWb6ub9\nny55Vdtt217Na6+9yxVX3MySJa9hsWRjNH6M3Z7IkiUBtGzZgU2blvP8898RFdUAX98A9u37k3r1\nmharwj52+nX+c/owJ2253Bj3Lyl2G32CwsgxVdzSvxAVoaRl8DfKM7DW+qRS6phSqqXWei/QB9hd\nnjGFEFVrwz//MHjqVJ657TbmPP44oYGBmLOymPvjj1w7aRLLnnmG7q1bu3z9nVdfzSMffEBKdrbT\n/SlAkJ8fd159NVA8UQM0b94Rf/8QXnyxHwEB/alffz4GQygOh5mEhHt58cXradiwDU2atAfghhse\n49NPx9GuXf9CVdi5uXuxOZKJd1j5tVEbWvoGkGa380V6IiuSTrB370aPPfxDiPPl6Wrwy4CPAV/g\nIHC/1jrF5QtkZi1ElXCnr7fD4aDVo4/y3/vu493Fi4sdn2qxcCI7m4wlSzAYXF9h++Off+g+bhxG\nIBjwAyxABmAH1v/3v/lP+1qxqW6hRH02jpEjm5KQcAyFLwYVhMKIxoZDZ6HJpV69JsyatQ+lFHa7\nnenTh/HnnysxmaIwmUJwOGykpv6D1g58jUE0Dg8jzpxJTGgQPgYj2UYTuUYfPvhgj1e0JhU1V4VV\ngyulLgZeBdoA/me3a62blvZarfU2oJM7gQghqk7RB20489POnQT4+nJj165M+eijYr3EtdYEHT7M\n2u3bue7yy12O061VK/bPmsXoDz/kp507SbPZ8PXx4dpLL+X9Rx6hWXReVXb+rLqI7dt/JCQkkgi7\nlduBhelJnLJbqWc0cWdoLRZpjcUvkB07fqJ9+2swGo2MHfs569cv5fvvZ3Lw4DZAERwczpQpsTRp\n0i6/T3fXAXl9urXWPP54O3buXEe7dr3d/jkK4SnuVIPPBV4ApgO9gfvxbGGaEMILbTt4kGvatXM5\n01RKEeLry7ZDh0pM1gDNoqNZ9dJLLvc7W/4+69Ch7Vx6aW/2rV/K2LDajC1wyxXA0rQEWra7hkOH\nttG+/TUAGAwGevYcSs+eQwH46qv/kpZ2miZN2jmtKA8NjaLdmTEkWQtv4E7SDdBaryVvyfyI1vpF\n4AbPhnXh0lqz49AhVm7ezJ/79rlVOStEZfAzmUh3ca35LIfW+JlM5TpPSYkawGTyIycno8QxcnIy\nMJVQJFZwDFd9urOzSx5DiMrkTrK2KKUMwD6l1H+UUjeTd6lJVLC127fTaexYbpw6lXdXrGDYW2/R\nZvRovlq/vqpDE4L+HTvy7caNZFssTvdnOxykWizc0KkCrny5SNQAHTv2Z8OGb3C4+CDr0A42bFhG\nx46uuyJ37NifP/74msTE42cqxO8Fzvbp/o6EhGNs3PhtiWMIUZncWQZ/AggEHgdeBq4BhnsyqAvR\nqi1bGP7228wePZpBXbpgMBjQWvPzrl3cO3066dnZ3NenT1WHKS5gzaKjubptW8bMmVNsxcehNf+X\nmEiwyZR/zbksXF2nLqh+/Ytp3boHe7f9iCOsNoYCy/IOrTmZkcqlHfpRr57r28hiYlrQqlV3Xnvt\ndmy2mwkIONen22YbwKuvDqV9+z7Urdu4zO9FiIrkdjW4UioU0FrrdI9Fc4FWgzscDi5+5BFmjx7N\n1HnzilXZZtts/JuWRuqiRQT5+7sYRQj3OKv8Pp6SggmoGxFRaHu82Ux0aGj+93aHg/1paVjsdmKC\ng/EzGrHY7SScWR7v0LAhv7zzTpniKm35u6CMjFRGPtAAh81KREAIvkYfcu1WUrIzMPj4MufTOAID\nQ0sd48EHm5Kbm4uvbzhZWVkEBua1J/X19eOTTw6VOoYQ5VWR1eCdyCsyCznzfRrwgNZ6S7kiFPli\nd+wgLDCQa9q1Y3xaWrEqW4DwzEyW/v47w2V2LcrJ7OR3rFNKCvOBNkW2xyQlFTvWFh5Oq4QE2rZu\nTXxKCtEREQy/5hoGdemCz5mOY2XmRqIGCA4O5/OFqWzatIK1az8lNfUkdSOiua/PfXTuPBCjsfRF\nw+DgcL744jQbNy5n+vT7ARt2u4Nx476gc+cb3BpDiMrizm/jJ8CjWutfAZRSPclL3u08GdiFZH98\nPB2bNy/xfs5AHx/2x8dXYlRCOOejFOF+fix79tkKG9Od5e+ijEYfunW7mW7dbi7zeY1GH6Ki6mOx\nRADLsFhuIiIiWhK18Dru/EbazyZqAK31b0opmwdjuuCEBQZyKtX1k0MBrA4HYUFBFX5urTW/79nD\nlv37Mfn4cN1ll3Fx/foVfh5Rs9i1ZuHPP3MyNZV64eEM7tr1vC/RZObksHzjRtbusBMeFEnXu8ZS\nFRd53nxzFHA3Sl2G1nfz5psPM3v21iqIRAjX3KkG/1kpNUsp1UspdbVS6gNgnVKqg1Kqg6cDvBAM\n6NSJX//+m/jkZKf7sxwOUiwWbu3WrULPu+PQIS574glGvPce+06c4K8DB+gxfjw3TplCcrrnShNE\n9aW15p3UVHYmJfH5zz9z5PRpPv/5ZxqNGMH0b79161ZDrTVvf/stjUaM4POff+Z0Wjw/H9/AiBGN\n+Pbbtyv1dsW9ezdw8mQKMPrMltGcPJnC3r2bKi0GIdzhzsy6/Zn/faHI9svJe9DHNRUa0QUoLCiI\nUf37c+cbb2Av8oADi9YMP3WKMF9fmtSrV2HnPBAfz3WTJvHGAw9wT69e+UvwObm5TJw/n+tfeIHf\npk0r9z2zomZ5Jy2N2WlptIqI4H+TJuVvPxAfz+ApU9BaM/amm0oc4+3ly/l4zRo2vfEGu49dln+d\n+sSJ/UydeiOgufHGMZ58G/nOzarzVpOUqi+za+GVPNob/LxdoNXgAHa7ncc/+oiPVq8m0tcXfx8f\ncu12EnNyCDaZuDQmhp/fftutsdzp8/zge+/RICqKXzZvLnas1pqDmZm8+8gjDOst3Zuqgjv/hhU5\ntqtq8EOJifif+SDn0JpTWlNbKXK1JrBI/2+b1iRojfnLLwkOCHB67ozsbBqNGEHLqCjMKRbw8y18\nQGAoR5PimDPnKAEBnmnnYDYnMn36w4wZM5t7722Jw1F8zmIw2Fi2LNEj5xeioIqsBq8LvALU11r3\nV0q1AbppreeUM0ZRgNFo5P1HHuGJQYOYFxvL8cREaoeFcU+vXlzWtNQ27IU4q/YF6HTmD3Su1cri\n335j34cf8t3atU6PbZaby6dr10qyriKl/RuWx/kk+04jRuTH8UV6OovS01lRvz719u8nzsmqS4DF\nwjcbNrj8vflmwwaubNOGuEOH+D0oCorUYfRIS6B16x5s2LCM3r3vOY935b7Vq+fz778prF49TxKy\nqDbcWQb/lLzq77Oln/8CXwKSrD2gRUwMU4cN8+g5zNnZmHx8is2iCvI3Gjnh4hq6uDCdsNlo4etb\n4jFGKPH3Jj45mRYxMez/56jLvz7167cgJcUzdz646gMuhLdzJ1nX0lovVkpNBNBa25RSdg/HJTwo\nNCCAXJuNhBJmaRa7nYYlJHNRNSx2Oy8uWEB8Sgp1w8O5p1cvWsTEnNcY+0+c4LN16zh5ZoxhvXu7\ndQdAPaOR33NySjzGDtQLD3e5v254ON9sOJz3jYu7G06ePJD/LOqycDgcbNv2A1u2rMRqzaVp08u4\n6qq7CAwMye8DHhDQkoyMvD7gQ4aMLfO5hKgs7lSDZyqlosgrJkMpdQVQ/rU4UWV8TSZu696d2atX\nO92vtSYhO5vh10jtoLewa83ohAT+SUnBnJ3N5U2bkmWx0HPCBEbOmIHNXvrnZ5vdzqMzZ9Jt3DjS\nC4zRY/x4HnJjjJuCg/klO5sjVqvT/Ue1xgLcXMJdCzd368auI1ux+jj/05Nrt/H3379wxRVlu3f6\n1KnDPPHEZcybN4HIyBguuqgtW7euYeTIxqxdO89pH3CzOalM5xKiMrkzsx4LLAeaKaV+B2oDt3k0\nKuFxE2+7jZ4TJhCiNVrr/Gpwq9ZMSkrC6nBwe8+eVRylOGtiUhK7c3OpYzDwy/r1/HJme4zJxJc/\n/cSqjRs59tlnJY4xYd48/jl+nNa1ahUbY9FPP/G9kzFOpaSwOyUl//v7gb5HjmCHQg/0OA7cCgQB\noYGBLmP4eVcTbu0+jM9jP6BnWgK+BRoB5WrNIbuNe4a/SmBgSKk/k6JycjJ54YW+9O8/isGDnyQ9\nPSm/kOz06cM880wvAgOHF+oDfvYpWzK7Ft6u1GSttf5LKXU10BJQwF6ttfOP1sIrhIaFOS1ECi1Q\nsNQiJobvX3iBq8aPJ+jwYUJ9fXFoTWpuLgFGIx0aNSLATx4PWFUK/hvaHA52paVxSWQkdqu1WOFZ\nSkgItQ8f5lRKiss6hESzmY9/+IF9H35I/7Fji42RHBJCncOHOZ2aSp0Cy9hW4N4Cx2mlyDQYSHI4\niCTvD4gNsJD3KL6S/qCc7VJ2yxPv8fW6Dzlmt9JVKRqiOIpmk9YEGozccss4d35Exfzyy0IaNGiV\nf9tXwUKyIUPGEhXVjISEzzAaNxR63bZt9SVZC6/n8r8tpVRn4JjW+uSZ69QdyfvwfEQp9aLWWqqP\nvJS71b4dmzcnY+lSYnfsYPP+/ZiMRq7v0IFLGjXycISiNAX/Def++COr/vqLL8eNo9OIEcWOjTAa\nCfP15ZsNG3ikf3+n4327YQP9OnSgtpMKc4DIAmM83K9f/vYGERFOq9KjDxzgldq1ibfZiPbx4Zag\nIMKMxtKr1bt0QQENo2JYGRzJd5kpnLRZ6eBjYk5wBP3Tk0tsu1uSX39dxMCBjwPOC8nefvsP7r23\nDu+88yPBwa6vqwvhjUr6IDwLuBZAKXUV8BrwGHAZMBtZCq8RlFL0ad+ePu3LXtAjPCslI4PoUor9\nTAYDqZmZLvenZmaWe4yCDEpxf6j7T6Ry1vs7zGjk7tBabo9RmoyMFCIj8x7P6aqQLDAwjOzsdEnW\notopqcDMWGD2fDswW2v9ldb6eaC550MTQgA0rVePbYcOlXhMls1Gk7quH4bRpG7dco9RVufz6Mvy\nqFu3KQcPbsufVRctJDtyZBc5ORmEVuAHBCEqS4nJWil1dubdB4gtsE8eSSNEJRnQsSP/njjBn/v2\nOd2/3WIh22bjxq5dXY4xsHNn/jl+nC379zvdv82NMcqishI1QN++D/Ldd++ycuUn2O0DMRoLF5J9\n+OHjXHnlHfj5Oe+uJoQ3c9luVCn1LDAASAQaAR201lop1RyYp7XuUeHRXMDtRkviqvVkvNlMtJOl\nyIpoSSm8y+LffmPMxx9Tx98fQ24uSim01mRYrexPSyPMYKBpVOHmHkV/P5JzcjiemUmo0chFYWHF\nxggGgou0EM3Rmia1is9E3fndO5uoX1g0Gkva6ULHpaacxArUjijc794vrA4vvfWn2z+XghwOB9Om\nDWHXrt8xmepgNOY1cNHaQXb2aXJzk5g1ax+1ajUo0/hCeEK5241qracqpdYC0cAafS6rG8i7di0q\niavWkzFJSR5rSSm8y9CePfH18WH8vHn4BARwcf36HDh5EkduLo215kCdOsVeU+z3IyyMbzIyuDMh\ngZwzY+yPj8dhtRJmNpPspDtZjNXK5jnlaFbYpQuWWaf5Pax24e1htemRlsBrc46UfewiDAYDTz21\nkM8+e4Yff/yEJk0uIyAgmH/++YNWrTrzyCMfSKIW1VaJy9la6w1Otv3ruXCEEK7cdMUV3Ni1Kxv2\n7iU+OZm64eF0a9WKLiNHuj3GzcHBXGKzMeOxx4hPTqZeRARXtGxJw1tu8WDklcdk8uWBB97gjjte\nYM+e37BaLTz44NvUq3d+/fWF8DZy7VmIakQpRbdWrap8jNKs2FS3Uq5TuxIYGELHjs5vYxOiOpJk\nXcNkOByczs6m45gxxCUl5T+5a2TfvkSGnH9XKCHOV1UnaiFqInd6g4tqIsFup/vx45hzc3n9vvv4\na/p0Zj36KLuOHKHjmDEcOnmyqkMUQghRBjKzrgbizWZikoo/bCBH60LFZPvT0vA3GjFkZzPshRcK\nHZuhNS0ffhjLsmWFOkTFDBkCzh7MYDIRt2RJxb0J4TGu2stiMpXadrbgsTEufg/Oh7PmJ35hdejh\nohp8woiLih1b1mpwIWoySdbVQHRoqMuq77OVugfi47ni6ac5/MknNBs6lLgif2QdWuObm8v6PXvo\n0abNuR1Wa7FjAed/uIVXqojb9Crig5mre6qdJd8JIy4qXiEOxZK6ECKPLIPXEOt27mRAx474O7n9\nBvLaQwYAP+3cWbmBiQuLXKsWwiMkWdcQDq0xGkr/53S4aIIjRHk4W/4WQlQcSdY1RLdWrVi9dStW\nm83pfq01OUC3li0rNzBR41VmS1EhLlSSrGuIthddxMX16/PuihVO9y90OADk6VqiQkmiFqJySIFZ\nNeCq2rdoVe+nTzxBr2efJcnhoJbFghFwAFlADhBMXkvGQiqoClhceMqTqJ1ViJ/dLoQozuWDPKqE\nPMij3E6lpHDZqFFgsXDKbifCYGBYSAhjwsO5NSurfH2ehShAmp8IUX7lfpCHqJ7qRkQQExTE5vr1\nsWuNUbn1eyDEeZGCMiEqlyTrGkwStXDl8KlTnExJoV5EBI3rnl/ilevUQlQ+SdZCXEB+272b5z7/\nnD3HjtG4bl0OnzpFqwYNePnuu7mqbVv3B5JELUSlkmQtxAXih61bufutt5g+YgRDe/bE5OOD1Wbj\nq/XrGTJtGvOefJJ+HTtWdZhCCCekwKwau2bsWMxOqsQPJCTg5+R4q1Ikffut5wMTXsdut9Ps4YeZ\n89hjTJ03r9jvTXpuLkcyM8lYsgQfo9HlOFJUJkTFkgKzC4A5Lc1pz/B6CQmc9CuerqXf94Vr9dat\n1AkLo0/79ox38XsTnJnJys2bGdy1q9MxJFELUXWkKYoQF4B/jh+nR+vWJR4TbDLxz/HjTvdJohai\nasnMuprbnZvLXxYLPkDvgADq+viggR8dDuK0pjZwrcGAbwVVhqdkZPDjtm1k5+Zy6UUXcXmzZhUy\nrrez2e3E7thBfHIydcPD6dO+PSaf6vOfT5C/P0np6SUeY9OaQCcrMkKIqld9/tqIQg7Ex7M3NZU+\nycn0DgggR2tGJSTQ3teXRGCizUYrpTisNQ/YbLxYzsSSa7Xy9KefMj82lp5t2hAWGMikBQuoGx7O\n7NGjad+kScW8MS/0xbp1TJg/n/qRkbSMieFAfDwPvPceL991FyP69q3q8NwysHNnJs6fjzkry+n+\nDI0O+eUAABaGSURBVIeDVIuFG50sgcs91UJUPUnW1dDxxER6Pfss4b6+HKhXL3/W/ElaGo8lJqKA\n9SYTpjPbdzocDLHZyCjj+bTW3PXmm1htNvbOnEmd8HAgr2jp83XruG7SJH5+5RVaN2xYAe/Ou8yP\njeX5L77gqwkT6NKiRf727YcOceurr5JrszFqwIAqjNA9MVFR3NS1Kw++916xJ69ZtWbk6dOE+frS\nsHbhZ0zLPdVCeAepBq+GHps1C39fXz5ZtgzTmX8/DSQCYYCZvD7g/gVekw2kA+2jogo9SjPebCY6\nNLTYOULDwoh96y0Aft61i4fff596/v5kmM3Fjk11OOjQqhWLx4+voHfoHSxWKxeNGMGqF19k7IwZ\nxSqoc2w29qalkbpoEUH+/i5G8R7ZFgt3vvEGa/76i0hfX/yNRix2Owk5OfgbjbRv0ICf33670Gvk\nWrUQniXV4DWU7cxsdse777Lg22+J8/UF4H92O6/Y7fzu60u4xUIXYE2B69SdtCYCuN1g4MEClcAx\nSUlOK4MLPjhkzg8/8OiAAcxftszpsZenpLBm2zaS09OJDAmpuDdbxVZu3kzrhg25rGlTl5X34ZmZ\nfP3HHwzr3bsKIjw/AX5+fPPMM6zfs4d5sbHEn+lgNvyaa+jRujWqSF2DJGohvIck62omLTMTpVSx\n5cqjwKVn/tj6AMecvLYZcMzF865LcjQhgfv79HG532gwEB0RwcmUlBqVrI8mJHDpRReVeEyA0cjR\nhIRKiqj8lFL0aNOGHm3alHicXKcWwrtIsq5mggMCsFitpGRk4HA4mGi18qvWJGud90hMhwM7EOXk\ntVuAtIwMfsjOpqOvL1Nr1XLrnLVCQ0tMSA6tOZWaWqMSNUBUSAg/7dxZ4jG5DgdRbr7vhP9v796j\nqyrPPI5/n9xICCEEA1FADUVaq3UNtHjFkbYWi4qUVh1ra1mOnaKDOrVdnbbqdNnL0mU7U9ulvclo\nR2ylKFWstR0YLd5m2iIgKKgVkZtAAYmBkADJSfLMH2eHhtxIwtnZ++zz+6yVZc4++5z9bKPnd953\nv/t99+5lwQsvsL2mhqphw7jyvPOoqqjIRKkZpevUIvET6n3WZrbJzNaY2WozWxHmsXLFoMJCZp51\nFv90993sAH7c2koRUAasBcpSKRqAz7Z7zVvurAZWAIPNGGzG/Pp6hm3YQF1r6xGP+dkpU5i7ZAnd\njW+obWzkg+PGcWwMg+dozDjzTJ5bu5atu3d3+fzulhb2NjVx2eTJPb6Pu3Pb/Pm897rrWLl+PWUl\nJazZvJmT58zhaw88QGsv/gYDTkEtEisD0bL+iLt3/WknnXQ1hejW2loK4VArbGdDA1v376cQGAvU\nBCE6EniH9GCz80m3eJuAvwNagH8AbmlqOvS+jwHfBn60Zw83BCO8u3LJGWdwx8KFbGtooKW8/LDV\nvJYfPMjW+noeuOKKozzz+Bk6eDA3zZjBpXfeSapDoNa2tHDpX/9KZXExlV0M0Gvv9kce4fcrVnDq\niBGsXbOGtUFr/cTiYn78xBMseOYZNs+bd9hruptKtv3AvzCo+1skntQNHjNdDWSaVFvLg8Apwfb3\n1NZy5qBBLG9spAiYDDQCi4FK0oH9fmAwcBBoBgqB14HPdzheEXBTTQ0PdBhcNLRdDQX5+fz3N7/J\n+C98gcEbNzJ80CDy8/LYl0qxP5Xi5KoqpvRlxaYs8o0rrqCpuZnvPfoolQ0Nh0ZQ1zY2ckxxMaeM\nGtXj6+v27+eu3/yGV+6+m5lf+1qnv+2usjJGbd5MTV0dx7QL/e4GtE3qIsAzRd3fIvEVdlg78LSZ\ntQD3uvvckI+XeHWtrWxsbuapUaM4Z8sWvlpQwAp3hgC/yMtjshmlTU20AtcOG8Z9dXVcUFLC8w0N\nrAbyOoTySHd2u3Pfrbcy4T3v6fa4lUOHUvvww6xcv57fLFvGwaYmTquu5rJzzqEkwbNe5eXlcfvn\nPseN06cz/7nn2B7MYPaZKVMYfUxXIwMO98SyZZx36qmM6WZ8wMiCAoYWFfHYn/7EFz7+8UyX32sK\napF4Czusz3X3bWY2EnjKzP7i7s+338HMZgOzAe6dM4fZ06aFXFJ229ncjAHjioow4PL8fC7vsE8R\n6fuq/6Oykvvr6ji9uJjnGxq6fL88oKiggI07d/YY1m0+dNJJfOikk47uJLLQsRUVfHnmzD6/7p26\nOk4cObLHfYry8tjdxf3rA05BLRJboQ4wc/dtwT93AYuATp8G7j7X3Se5+yQF9ZEdH8z9veLgwW73\nSQFDgolPhuflsayHfZuBxuZmPnDCCZktVAA4vrKS17Zs6XGfgy0t3ba8RUQgxLA2s1IzK2v7HbiA\n9IBlOQrFeXl8oKiIG7q5laq5tZUDwGeGDAHgxvJyftvQQHfjjeuBUcOHM3706FDqzXXTTz+dlzdt\nYu3mzV0+v76pifpUik+dffYAV/Y3mvxEJP7C7AavAhYFsyIVAPPdfXGIx0uEoeXlnQYRbQU+DlQF\n21MlJSzbu5dCYGRj46FvXM3AHtIDBR6uq2NhXR2twfbdwAg4ND1pK+mgbgR+dO21IZ9V7iouKuLO\nWbO45DvfoWHPHkbX1Bx6LhXcHz+koKDTdKVd/XfQtj2Tog7qurrd/OAH1/KlL81l6NAjjwEQyVWh\nhbW7byB915D0QW9vy3lq1Sqm3XYbNUB1QQEpYFdzMycWFLCvuZld7QaS1bkzmXS3xnEVFZQWF7Np\n1y4K8/P5xfXX88kIW3W54JqpU8nLy2P2PfdwRlER7y0s5K1UijdSKX4yfDhdjboM8/asOFmy5EHW\nratlyZJ5XH75l6MuRyS2Qr1mLeGZOnEiE0eM4OGqKqaUlHBRSQkvjhnDxurqTt/AhpqxxoxjgEvP\nPptzTzmFn82ZQ/0jj3BVFsxpnQRXn38+pw0fzi0VFZxTXMxXKirYUl3N7Ay3lPsi6nuq6+p2s3Tp\nk1RU/JSlS5+krq7myC8SyVG6zzrLXVZWxmW9nO6yALjnuuvCLUi6ZWZcVFoadRlAPG7VWrLkQVpa\nplNS8j7q66erdS3SA7Wss1hDKsXVO3dy2pYtTNyyha/v3s2mVCrqsiTm4hDUba3qkpJZAJSUzFLr\nWqQHCuss9e0FC3irro5Ti4r4ZVUVPxs5khQw6e23aYy6OIm/iEd/t7Wq8/PTt6zl51fS0pJuXYtI\nZ+oGz0KP/vGPPPTcc5S2tvL9mhq+326EsQN7gRHBKlztNQKjO07sUVjItoULe3XcqOarToqBGuHd\nk6ivU7dZvfpZWlq2s3fv/A7bR6krXKQLCussdNfjj3PnrFnc8N3vsq2wsNPzQxobueZTn+K7V199\naNvomTOp7WLf0X3oNo9ivuokifoLTRy6v9vcfvsTUZcgklXUDZ5l6g8c4KUNG7ikhw/cEjOWrFo1\ngFVJ3MUpqEWk7xTWWSbV0kJhfj75ed3/6QxINTcPXFGSHRTUIllLYZ1lhpWWMqK8nBfXret2n0bI\nycU2pGtxuU4tIv2nsM4yZsacCy/ktvnz8WDq0PbecafBnTkXXhhBdRI36v4WSQYNMMsCHUdht7rz\n1t69HHBnRFMTbcPGDgL73CnJz+esk08+7D0OunNsY+ebulId1rfuSRxGM0s/KKhFsp7COgt0NQq7\nqbyccTt2UFRWRs2+faSam5kwdiw3zZjB5eee2+k9xlZWHvVI7qhHM4uI5CqFdZYqMqNq8GCW33sv\ntfX1FOTnM3Tw4KjLkhiJekUtEckchXWWMzOG93JucMkdCmqRZNEAM5GEUVCLJI/CWiRBFNQiyaRu\n8JBlYj7t7kZhb9y9u/Nc36RHfo+trDxs29baWo6vraWqoqLTe4uISLwprEOWifm0uwv10TNndjk3\n+LGNjZ2PGQT+ivvv7/VxJbto8hOR5FI3uEgCaPITkWRTWIskhYJaJLEU1iJZTt3fIsmnsBbJYur+\nFskNGmAWskzMp93diPKD7oxOpTptT5lpDu9coqAWSTyFdcgyMZ92tyPKQaO7c5i6v0Vyh7rBRbKQ\nur9Fcota1llicyrF7/bvZ39rK6cVFTFVi3bkLAW1SO5RyzrmGg4eZGNdHR98+21WHjzI9uZmbn33\nXcZv3sy+pqaoy5MBpqAWyU1qWcdYa2srn7zjDgC2VFdTmve371aLGxq4ZMcOlr/5JqePHx9ViRIF\nBbVIzlFYx9jTL7/Mzj178MZGxm3Y0On5QuBjN9/M+A6Dz/oy77iIiMSfusFjbN7SpVw3bRoleXns\nGDSo008ZkN/czO9KS1lRXn7op6vbvCT7aUUtkdylsI6xHbW1jB81qtvnDRhVUMDOlpaBK0oioaAW\nyW0K6xg7tqKCN7dv7/Z5B7Y3NzMyP3/gihIRkQGnsI6xWR/5CD9bvBh37/L5A8BZxcUcW6ChB0mm\nyU9ERJ/yEeluCtH2g8OmTpjAyPJy3nSnwZ1Ss0P7LWltpR741vDhA1WyREC3aokIKKwj0+0Uou0C\nPC8vj0W33MLIK6+krKmJEtLXqZuAVmAI8M+NjdDYeNh7aA7wZFBQi0gbhXXMDSkpYf/jj7Np505+\nt2IFB5qaOPWEE7hgwgTyda06+RTUIoLCOmtUV1Vx/cUXR12GDBBdpxaR9jTATCRm1P0tIh0prEVi\nREEtIl1RN3hEhpaXHzaYrP12yXEKahHpQGEdEc3dLR3pOrWIdEfd4CIxoO5vEemJwlokLhTUItIN\nhbWIiEjMKaxFIqYVtUTkSBTWIhFSUItIbyisRSKioBaR3lJYi4iIxJzCWiQCuqdaRPpCYS0ywHRP\ntYj0VehhbWb5ZrbKzJ4M+1gicaegFpH+GIiW9ReB1wfgOCLZQUEtIn0Ualib2RjgYuC+MI8jkg10\nnVpE+ivslvUPga8CrSEfRyTW1P0tIkcjtLA2s+nALndfeYT9ZpvZCjNbMXfx4rDKEYmeglpE+inM\nJTInAzPM7CKgGBhqZr9096va7+Tuc4G5APz2tx5iPSKRUPe3iByt0FrW7n6zu49x92rg08DSjkEt\nknTq/haRTNB91iIhUVCLSKaE2Q1+iLs/Czw7EMcSiRUFtYhkgFrWIiIiMaewFgmBVtQSkUxSWItk\nmIJaRDJNYS0iIhJzCmuRDNI91SISBoW1SIboVi0RCYvCWiQDFNQiEiaFtchRUlCLSNgU1iKZoKAW\nkRAprEWOggaUichAUFiL9JO6v0VkoCisRY6GglpEBoDCWqQf1P0tIgNJYS3SR+r+FpGBprAW6Q8F\ntYgMIIW1iIhIzCmsRfpAK2qJSBQU1iK9pKAWkagorEV6QUEtIlFSWIscgW7TEpGoKaxFekOtahGJ\nkMJapAdqVYtIHCisRbqhyU9EJC4U1iI9UVCLSAworEW6oO5vEYkThbVIB+r+FpG4UViLtKOgFpE4\nUliLdKSgFpGYUViLBHSdWkTiSmEtgrq/RSTeFNaS8xTUIhJ3CmsRUFCLSKwprEVERGJOYS05TUtf\nikg2UFhLztLobxHJFgpryW1qVYtIFjB3j7qGQ8xstrvPjbqOsCT9/EDnmARJPz9I/jkm/fwgN86x\nvbi1rGdHXUDIkn5+oHNMgqSfHyT/HJN+fpAb53hI3MJaREREOlBYi4iIxFzcwjrp1x+Sfn6gc0yC\npJ8fJP8ck35+kBvneEisBpiJiIhIZ3FrWYuIiEgHsQhrM5tmZm+Y2Xoz+3rU9WSamf3czHaZ2dqo\nawmDmR1vZs+Y2Wtm9qqZfTHqmjLNzIrN7EUzezk4x29FXVMYzCzfzFaZ2ZNR1xIGM9tkZmvMbLWZ\nrYi6njCY2TAz+7WZ/cXMXjezs6OuKZPM7H3B36/tp87Mboq6rrBF3g1uZvnAOmAqsBVYDlzp7q9F\nWlgGmdl5QD3woLt/IOp6Ms3MjgOOc/eXzKwMWAnMTNjf0IBSd683s0Lgf4EvuvufIy4to8zsy8Ak\nYKi7T4+6nkwzs03AJHffHXUtYTGzecAL7n6fmRUBg919T9R1hSHIj23Ame6+Oep6whSHlvUZwHp3\n3+DuTcAC4BMR15RR7v488G7UdYTF3f/q7i8Fv+8DXgdGR1tVZnlaffCwMPhJ1IAPMxsDXAzcF3Ut\n0j9mVg6cB9wP4O5NSQ3qwPnAW0kPaohHWI8G3m73eCsJ+6DPJWZWDUwElkVbSeYFXcSrgV3AU+6e\ntHP8IfBVoDXqQkLkwNNmttLMkjipxljgHeC/gssZ95lZadRFhejTwK+iLmIgxCGsJSHMbAjwKHCT\nu9dFXU+muXuLu08AxgBnmFliLmmY2XRgl7uvjLqWkJ0b/A0vBK4PLlElSQHwQeCn7j4RaAASNw4I\nIOjinwEsjLqWgRCHsN4GHN/u8Zhgm2SR4Druo8BD7v5Y1PWEKehWfAaYFnUtGTQZmBFc010AfNTM\nfhltSZnn7tuCf+4CFpG+DJckW4Gt7Xp9fk06vJPoQuAld98ZdSEDIQ5hvRwYb2Zjg29KnwaeiLgm\n6YNg8NX9wOvuflfU9YTBzEaY2bDg9xLSAyL/Em1VmePuN7v7GHevJv3/4FJ3vyrisjLKzEqDAZAE\nXcMXAIm6Q8PddwBvm9n7gk3nA4kZ6NnBleRIFziku0wi5e7NZnYDsATIB37u7q9GXFZGmdmvgA8D\nlWa2FbjN3e+PtqqMmgx8DlgTXNMFuMXdfx9hTZl2HDAvGH2aBzzi7om8vSnBqoBF6e+WFADz3X1x\ntCWF4kbgoaDxswH4x4jrybjgy9ZU4Nqoaxkokd+6JSIiIj2LQze4iIiI9EBhLSIiEnMKaxERkZhT\nWIuIiMScwlpERCTmFNYiMWFmLcEqQmvNbKGZDT7C/rf08n03mVllb7dnipnNNLNT2j1+1swmhXU8\nkSRTWIvExwF3nxCszNYEXHeE/XsV1hGaCZxyxL1E5IgU1iLx9AJwEoCZXRWspb3azO4NFhS5EygJ\ntj0U7Pd4sEDFq/1dpCKY5evnwfFWmdkngu1Xm9ljZrbYzN40s++1e83nzWxd8Jr/NLMfmdk5pOdt\n/vegxnHB7pcH+60zs78/in8/Ijkl8hnMRORwZlZAet7jxWb2fuAKYLK7p8zsJ8Bn3f3rZnZDsChF\nm2vc/d1gOtTlZvaou9f08fC3kp5q9JpgetUXzezp4LkJpFdUawTeMLN7gBbgG6Tnn94HLAVedvc/\nmtkTwJPu/uvgvAAK3P0MM7sIuA34WB/rE8lJCmuR+ChpN13rC6TnW58NfIh0+AKUkF6isyv/Ymaf\nDH4/HhgP9DWsLyC9oMdXgsfFwAnB739w970AZvYacCJQCTzn7u8G2xcC7+3h/dsWeVkJVPexNpGc\npbAWiY8DHVrKbYukzHP3m3t6oZl9mHQr9Wx3329mz5IO2r4y4FJ3f6PD+59JukXdpoX+fX60vUd/\nXy+Sk3TNWiTe/gBcZmYjAcxsuJmdGDyXCpYmBSgHaoOgPhk4q5/HWwLcGHxJwMwmHmH/5cAUM6sI\nuu8vbffcPqCsn3WISDsKa5EYc/fXgH8D/sfMXgGeIr0CGMBc4JVggNlioMDMXgfuBP7cy0O8YmZb\ng5+7gO8AhcH2V4PHPdW3DbgDeBH4P2ATsDd4egHwr8FAtXFdv4OI9IZW3RKRo2JmQ9y9PmhZLyK9\nzO2iqOsSSRK1rEXkaH0zGBi3FtgIPB5xPSKJo5a1iIhIzKllLSIiEnMKaxERkZhTWIuIiMScwlpE\nRCTmFNYiIiIxp7AWERGJuf8Hvi+5kGSZC5IAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x117bbabe0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 6))\n",
    "plot_decision_regions(X, y, lr, X_highlight = X_test)\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")\n",
    "plt.legend(loc = \"upper left\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[27,  3],\n",
       "       [ 1, 14]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "confusion_matrix(y_test, y_test_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.91111111111111109"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy_score(y_test, y_test_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "By default, the positive probability > 0.5 is outcome as 1 else 0. What if we want to change the probabilities threshold."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy:  0.8\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[30,  0],\n",
       "       [ 9,  6]])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_prob = lr.predict_proba(X_test)[:, 1]\n",
    "y_test_pred_new = np.where(y_test_prob > 0.8, 1, 0)\n",
    "print(\"Accuracy: \", accuracy_score(y_test, y_test_pred_new))\n",
    "confusion_matrix(y_test, y_test_pred_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So we can observe that as we vary the threshold the accuracy score varies too. But who decides on threshold?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x1183c1b38>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n3bp1TJkyhT59+lC/fn02bNgQ+NVMkdKIQkQkijIzM3niiSeoVasWd999N9999x1A3BQJUKEQEYma\nFStW0LJlS2699VZatGjBsmXLArmz+lDp0JOISBTs3LmTli1bkpWVxfPPP8+1115bZE38CpsKhYhI\nIfriiy+oXr065cqV48UXXyQ1NZVjjz026FiHRIeeREQKwW+//caAAQOoWbPmviZ+bdu2jfsiARpR\niIgcsg8//JBu3brx5Zdf0q1bNy666KKgIxUqjShERA7B/fffz9lnn01GRgYzZszgmWeeoVKlSkHH\nKlQqFCIiBeDuADRo0IC+ffuydOlS2rRpE3Cq6FChEBHJhx9++IHrrruOQYMGAdC+fXseffRRypcv\nH3Cy6FGhEBGJgLvz6quvkpyczIQJEzjssOLz9amT2SIiB/Htt9/Ss2dP0tLSaNCgATNmzKB27dpB\nxyoyxackiogU0Hfffcd7773Hv//9b+bNm1esigRoRCEikqO1a9cyefJkbrvtNurVq8f69esT7mqm\nSGlEISKSTWZmJo899hi1atXi3nvv3dfEr7gWCVChEBHZJz09nWbNmtGvXz/OOecc0tPT47KJX2HT\noScREUJN/M4++2zMjJdeeolOnTrFbRO/wqZCISLF2vLly6lRowblypVjwoQJpKamUqVKlaBjxRQd\nehKRYmnnzp3079+flJQUxo8fD8C5556rIpEDjShEpNj54IMPuOmmm1i9ejV/+9vf6NChQ9CRYppG\nFCJSrNx77720bt0ad+e9997j6aefpmLFikHHimkqFCJSLOxt4teoUSP+/ve/s2TJElq3bh1wqvgQ\n1UJhZheY2UozW21md+bwfkUzm2Jmi80s3cxuiGYeESl+tmzZwjXXXMO//vUvINTEb+jQoZQrVy7g\nZPEjaoXCzJKAEUA7IBm42sySD1isF7Dc3VOBVsAjZlYqWplEpPhwd1566SVq1KjBxIkTKVVKXy0F\nFc0RRSNgtbuvdffdwATgkgOWceBwC12sXAHYCmREMZOIFAMbN26kQ4cOdO7cmTPOOIOFCxcycODA\noGPFrWgWiqrAhmzTG8PzshsO1AC+BZYCt7p71oErMrPuZrbAzBZs2bIlWnlFJEFs2bKFDz/8kEcf\nfZQ5c+ZQs2bNoCPFtaBPZp8PLAJOAOoAw83siAMXcvfR7t7A3RvoGmcRycnq1at57LHHAKhbty4b\n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\n7dq1Y9SoUZx00kkH/6CIxJxcC4WZlQg39qtL6DGma4AdgBEabNQroowShzIyMvj6668ZP34811xz\nDaGjmCISj/IaUXwC1AM6FFEWiXMLFiwgLS2NQYMGkZyczNq1a9WfSSQB5HWOwgDcfU1OryLKJ3Hg\nt99+44477qBx48aMHTtWTfxEEkxeI4oqZtYvtzfd/dEo5JE4M2vWLLp168bq1au56aabePjhh6lU\nqVLQsUSkEOVVKJKACoRHFiIH2r59O5dddhmVKlVi5syZnHPOOUFHEpEoyKtQbHL3fxVZEokbs2fP\nplmzZlSoUIG3336bmjVrUr58+aBjiUiUHPQchcheP/zwA9deey0tW7bc18SvUaNGKhIiCS6vEUWb\nIkshMc3defXVV+nTpw8//fQT9957r5r4iRQjuRYKd99alEEkdt166608+eSTNGzYkJkzZ5KSkhJ0\nJBEpQurIJjlyd/bs2UOpUqW49NJLOeWUU7jttttISkoKOpqIFLE8mwLGIjUFjL41a9Zw00030aBB\nAx5++OGg44hIIYhaU0ApXjIzM3n00UdJSUnhs88+o3r16kFHEpEYoENPAsAXX3zB9ddfzyeffMLF\nF1/MU089RdWqVYOOJSIxQIVCAMjKyuLbb7/l5Zdf5qqrrlITPxHZR4WiGPvkk09IS0tj8ODBJCcn\ns2bNGkqVKhV0LBGJMTpHUQzt3LmT22+/nbPOOovnnntuXxM/FQkRyYkKRTHz/vvvk5KSwiOPPMJN\nN91Eeno6VapUCTqWiMQwHXoqRrZv384VV1xBpUqVeP/992nVqlXQkUQkDmhEUQx88MEHZGVl7Wvi\nt2TJEhUJEYmYCkUC27JlC1dffTWtW7dm/PjxADRs2JBy5coFnExE4okOPSUgd+fll1/mlltuYdu2\nbQwaNEhN/ESkwFQoElCfPn0YMWIETZo04T//+Q/JyclBRxKROKZCkSCysrLIyMigVKlSdOzYkTPO\nOIM+ffqoiZ+IHLKonqMwswvMbKWZrTazO3N4v7OZLTGzpWY218xSo5knUX355Zecc8453H333QC0\natVKnV5FpNBErVCYWRIwAmgHJANXm9mBx0C+As529xRgEDA6WnkSUUZGBkOHDqV27dosWrSIGjVq\nBB1JRBJQNA89NQJWu/taADObAFwCLN+7gLvPzbb8fODEKOZJKCtWrKBLly4sWLCASy65hJEjR3LC\nCScEHUtEElA0Dz1VBTZkm94YnpebrsDbOb1hZt3NbIGZLSjEfHHv+++/55VXXuH1119XkRCRqImJ\nk9lm1pqdnGnAAAAM/klEQVRQoWie0/vuPprwYanSx1eLryctFaL58+eTlpbG//3f/1GjRg3WrFlD\nyZIlg44lIgkumiOKb4CTsk2fGJ73P8ysNjAGuMTdf4xinri1Y8cO+vbtS9OmTXnxxRf3NfFTkRCR\nohDNQvEpUM3MTjOzUkAnYHL2BczsZGAScJ27r4pilrg1Y8YMatWqxeOPP07Pnj3VxE9EilzUDj25\ne4aZ9QbeAZKAse6ebmY9wu8/DfwTOBoYGX5QTkZBn+maiLZv306nTp046qij+PDDD2nRokXQkUSk\nGDL3+DrkX/r4av77pi+DjhFV7733HmeffTZJSUl89tlnJCcnU7Zs2aBjiUgcM7PPCvqLuJoCxpDv\nv/+eK6+8kjZt2uxr4le/fn0VCREJlApFDHB3XnjhBZKTk/c9mvSaa64JOpaICBAjl8cWd7169eKp\np57irLPO4j//+Y/usBaRmKJCEZCsrCz27NlD6dKlueqqq6hRowY9e/ZUfyYRiTk6mR2AlStX0q1b\nNxo3bszQoUODjiMixYBOZseJPXv2MGTIEFJTU1m2bBkpKSlBRxIROSgdeioi6enpXHfddSxcuJDL\nLruMESNGcNxxxwUdS0TkoFQoikhSUhJbt25l4sSJXH755UHHERGJmA49RdHcuXMZMGAAAGeeeSar\nV69WkRCRuKNCEQXbt2/nlltuoXnz5rzyyiv88MMPAJQooQGciMQfFYpCNn36dGrVqsXw4cPp3bs3\ny5Yto3LlykHHEhEpMP2KW4i2b99O586dOfroo5k9ezbNmjULOpKIyCHTiKIQvPvuu2RmZlKhQgWm\nT5/OokWLVCREJGGoUByCTZs2cfnll9O2bVtefPFFAOrWrUuZMmUCTiYiUnhUKArA3Rk3bhzJycm8\n9dZbDBkyRE38RCRh6RxFAdx8882MGjWK5s2bM2bMGKpXrx50JBGRqFGhiFD2Jn7XXHMNtWvXpkeP\nHhx2mAZlIpLY9C0XgRUrVtCiRQvuuusuAFq2bEnPnj1VJESkWNA3XR727NnDgw8+SJ06dfjiiy+o\nW7du0JFERIqcDj3lIj09nWuvvZZFixZxxRVX8OSTT3LssccGHUtEpMipUOSiRIkS/PLLL0yaNIlL\nL7006DgiIoHRoadsZs+eze233w5A9erVWbVqlYqEiBR7KhTAtm3b6NWrFy1btmTSpElq4icikk2x\nLxRvv/02NWvW5KmnnuK2225j6dKlauInIpJN3P3KnFK1YqGta9u2bXTp0oVjjjmGuXPn0qRJk0Jb\nt4hIoih2Iwp3Z9q0aWRmZnL44YczY8YMPv/8cxUJEZFcFKtCsWnTJi677DLatWu3r4lfamoqpUuX\nDjiZiEjsKhaFwt0ZO3YsNWrUYNq0aTz88MNq4iciEqG4O0dRED169GD06NG0bNmSMWPGUK1ataAj\niYjEjYQtFJmZmezZs4cyZcpw7bXXUrduXbp3767+TCIi+ZSQ35rp6ek0a9ZsXxO/Fi1aqNOriEgB\nJdQ35+7duxk0aBB169Zl9erVNGzYMOhIIiJxL2EOPS1dupTOnTuzdOlSOnXqxBNPPEGVKlWCjiUi\nEvcSplCUKlWKnTt3kpaWRocOHYKOIyKSMOL60NOsWbP4+9//DoSa+K1cuVJFQkSkkEW1UJjZBWa2\n0sxWm9mdObxvZvZE+P0lZlYvkvX++uuv3HzzzbRq1Yo33nhjXxO/pKSkQv4JREQkaoXCzJKAEUA7\nIBm42sySD1isHVAt/OoOPHWw9f7yyy/UrFmT0aNH069fPzXxExGJsmiOKBoBq919rbvvBiYAlxyw\nzCXA8x4yH6hkZsfntdJ169ZRsWJF5s6dyyOPPEK5cuWik15ERIDonsyuCmzINr0RaBzBMlWBTdkX\nMrPuhEYcAL+np6cvUxM/ACoDPwQdIkZoX+ynfbGf9sV+1Qv6wbi46sndRwOjAcxsgbs3CDhSTNC+\n2E/7Yj/ti/20L/YzswUF/Ww0Dz19A5yUbfrE8Lz8LiMiIgGKZqH4FKhmZqeZWSmgEzD5gGUmA13C\nVz81AX5x900HrkhERIITtUNP7p5hZr2Bd4AkYKy7p5tZj/D7TwNTgQuB1cBO4IYIVj06SpHjkfbF\nftoX+2lf7Kd9sV+B94W5e2EGERGRBBPXd2aLiEj0qVCIiEieYrZQRKv9RzyKYF90Du+DpWY218xS\ng8hZFA62L7It19DMMsysY1HmK0qR7Asza2Vmi8ws3cxmFXXGohLB/5GKZjbFzBaH90Uk50PjjpmN\nNbPNZrYsl/cL9r3p7jH3InTyew1wOlAKWAwkH7DMhcDbgAFNgI+Dzh3gvmgKHBn+e7vivC+yLfce\noYslOgadO8B/F5WA5cDJ4eljgs4d4L64C3go/PcqwFagVNDZo7AvWgL1gGW5vF+g781YHVFEpf1H\nnDrovnD3ue7+U3hyPqH7URJRJP8uAPoA/wU2F2W4IhbJvrgGmOTu6wHcPVH3RyT7woHDzcyACoQK\nRUbRxow+d/+Q0M+WmwJ9b8ZqocittUd+l0kE+f05uxL6jSERHXRfmFlV4FIiaDAZ5yL5d/Fn4Egz\n+8DMPjOzLkWWrmhFsi+GAzWAb4GlwK3unlU08WJKgb4346KFh0TGzFoTKhTNg84SoMeBAe6eFfrl\nsVgrAdQH2gBlgXlmNt/dVwUbKxDnA4uAc4A/Ae+a2Wx3/zXYWPEhVguF2n/sF9HPaWa1gTFAO3f/\nsYiyFbVI9kUDYEK4SFQGLjSzDHd/o2giFplI9sVG4Ed33wHsMLMPgVQg0QpFJPviBmCIhw7Urzaz\nr4AzgU+KJmLMKND3ZqweelL7j/0Oui/M7GRgEnBdgv+2eNB94e6nufup7n4qMBHomYBFAiL7P5IG\nNDezEmZWjlD35hVFnLMoRLIv1hMaWWFmxxLqpLq2SFPGhgJ9b8bkiMKj1/4j7kS4L/4JHA2MDP8m\nneEJ2DEzwn1RLESyL9x9hZlNA5YAWcAYd8/xssl4FuG/i0HAODNbSuiKnwHunnDtx83sZaAVUNnM\nNgL3AiXh0L431cJDRETyFKuHnkREJEaoUIiISJ5UKEREJE8qFCIikicVChERyZMKhcQsM8sMdz7d\n+zo1j2VPza1jZj63+UG4C+liM5tjZtULsI6/mFlytul/mdm5hZBtnJl9Fd4Xi82sTQSf+auZnXCo\n25biTYVCYtlv7l4n22tdEW23s7unAs8B/y7A5/8C7CsU7v5Pd59RSNn6u3sd4DYgkvtG/gqoUMgh\nUaGQuBIeOcw2s8/Dr6Y5LFPTzD4J/+a9xMyqhedfm23+KDNLOsjmPgTOCH+2jZkttNAzP8aaWenw\n/CFmtjy8naHhPB2Af4e386fwSKCjhZ6Z8Fq2nK3M7M3w39ua2bzwz/SamVU4SLZ5ZGvmZmb/NLNP\nzWyZmY0O33nbkVBLkxfDWcqaWX0zm2WhJoHvWGJ2XJZCpkIhsaxstsNOr4fnbQbOc/d6wFXAEzl8\nrgcwLPybdwNgo5nVCC/fLDw/E+h8kO1fDCw1szLAOOAqd08h1NHgZjM7mlCn2pruXht4wN3nEmqT\n0D88ClqTbX0zgMZmVj48fRWhvlSVgX8A54Z/rgVAv4NkuwDI3ppkuLs3dPdahBoAXuTuE8Pr6hz+\nmTOAJwk9o6M+MBYYfJDtiMRmCw+RsN/CX3DZlQSGm9neL/s/5/C5ecDdZnYioecxfBk+nl8f+DTc\n5qQsuT+v4kUz+w1YR+jZFtWBr7L10XoO6EWodfUu4D/hkcGbef0w4VYT04CLzWwi0B64Azib0KGq\nOeFspcI/Q07+bWYPEmrmdla2+a3N7A6gHHAUkA5MOeCz1YFahDqnQqjdRSL2R5NCpkIh8aYv8D2h\nLqiHEfqi/h/u/pKZfUzoi3iqmf2NUH+f59x9YATb6OzuC/ZOmNlROS0U/uJvRKjZXEegN6E21nmZ\nEF5uK7DA3bdZ6Fv7XXe/OoJs/d19opn1ITQiqB8e8YwEGrj7BjO7DyiTw2cNSHf3s3J4TyRXOvQk\n8aYisCn80JnrCP1W/D/M7HRgrbs/QaiDam1gJtDRzI4JL3OUmZ0S4TZXAqea2Rnh6euAWeHzCBXd\nfSqhArb3WeXbgMNzWdcsQo+qvIlQ0YDQUwmb7V2/mZU3s5xGStkNBw4zs/PZXxR+CGfK/pzw7FlW\nAlXM7KzwdkqaWc2DbEdEhULizkjgejNbTOh5AjtyWOZKYJmZLSJ0qOV5d19O6DzAdDNbArwLRHQi\n1913Eeqy+ZqFuo9mEbri6HDgzfD6PmL/eYUJQP/wye8/HbCuTEKHqNqF/8TdtxC6Ounl8LrmhX+2\nvDI58ABwh7v/DDwDLCPUQfXTbIuOA54O74skQkXkofD+W0ToeesieVL3WBERyZNGFCIikicVChER\nyZMKhYiI5EmFQkRE8qRCISIieVKhEBGRPKlQiIhInv4fI9gYk1XhPmoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x117c598d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fpr, tpr, thresholds = roc_curve(y_test, y_test_prob)\n",
    "\n",
    "plt.plot(fpr, tpr, linewidth = 2)\n",
    "plt.ylim(0, 1)\n",
    "plt.xlim(0, 1)\n",
    "plt.plot([0,1], [0,1], ls = \"--\", color = \"k\")\n",
    "plt.xlabel(\"False Postive Rate\")\n",
    "plt.ylabel(\"True Positive Rate\")\n",
    "plt.title(\"ROC Curve\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.97111111111111115"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "roc_auc_score(y_test, y_test_prob)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import cross_val_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.95238095238095233, 0.0)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scores = cross_val_score(cv=5, scoring=\"accuracy\", estimator=lr, X=X_train, y= y_train)\n",
    "scores.mean(), scores.std()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, let's use all features availabe to predict the class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(105, 4)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(0.96277056277056272, 0.045617107782924646)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = iris.values[:, :-1]\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30)\n",
    "print(X_train.shape)\n",
    "lr = LogisticRegression(C = 10)\n",
    "scores = cross_val_score(cv=5, scoring=\"accuracy\", estimator=lr, X=X_train, y= y_train)\n",
    "scores.mean(), scores.std()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Regularization of model using complexity parameter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "params = 10 ** np.linspace(-5, 5, 100)\n",
    "means, stds = [], []\n",
    "coefs = []\n",
    "\n",
    "for p in params:\n",
    "    lr = LogisticRegression(C = p)\n",
    "    scores = cross_val_score(cv=5, scoring=\"accuracy\", estimator=lr, X=X_train, y= y_train)\n",
    "    means.append(scores.mean())\n",
    "    stds.append(scores.std())\n",
    "    lr.fit(X_train, y_train)\n",
    "    coefs.append(lr.coef_[0])\n",
    "\n",
    "means = np.array(means)\n",
    "stds = np.array(stds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11834c828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 5))\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.plot(params, means)\n",
    "plt.fill_between(params, means + stds, means - stds, alpha = 0.2)\n",
    "plt.xscale(\"log\")\n",
    "plt.xlabel(\"C\")\n",
    "plt.ylabel(\"accuracy\")\n",
    "plt.title(\"Impact of complexity parameter (C)\\n on accuracy score\")\n",
    "\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.plot(params, coefs)\n",
    "plt.xlabel(\"C\")\n",
    "plt.ylabel(\"Coefficient\")\n",
    "plt.xscale(\"log\")\n",
    "plt.title(\"Impact of complexity parameter (C)\\n on feature coefficients\")\n",
    "\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-2.55602202, -2.94041318,  3.46598289,  6.02582653])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = 10)\n",
    "lr.fit(X_train, y_train)\n",
    "lr.coef_[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.0083705 , -0.00582954, -0.00115182,  0.00056174])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = 1e-4)\n",
    "lr.fit(X_train, y_train)\n",
    "lr.coef_[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Model Tuning using Grid Search Techqniue"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Find which parameters are available to tune."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'C': 1.0,\n",
       " 'class_weight': None,\n",
       " 'dual': False,\n",
       " 'fit_intercept': True,\n",
       " 'intercept_scaling': 1,\n",
       " 'max_iter': 100,\n",
       " 'multi_class': 'ovr',\n",
       " 'n_jobs': 1,\n",
       " 'penalty': 'l2',\n",
       " 'random_state': None,\n",
       " 'solver': 'liblinear',\n",
       " 'tol': 0.0001,\n",
       " 'verbose': 0,\n",
       " 'warm_start': False}"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "LogisticRegression().get_params()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import GridSearchCV"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=LogisticRegression(C=0.0001, class_weight=None, dual=False,\n",
       "          fit_intercept=True, intercept_scaling=1, max_iter=100,\n",
       "          multi_class='ovr', n_jobs=1, penalty='l2', random_state=None,\n",
       "          solver='liblinear', tol=0.0001, verbose=0, warm_start=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'C': array([  1.00000e-05,   1.26186e-05, ...,   7.92483e+04,   1.00000e+05])},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring='accuracy', verbose=0)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "param_grid ={\"C\": 10 ** np.linspace(-5, 5, 100)}\n",
    "gs = GridSearchCV(cv=5, estimator = lr, scoring=\"accuracy\", param_grid= param_grid)\n",
    "gs.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best estimator score:  1.0\n",
      "[-1.40551558 -1.21892696  1.89206965  2.27884484]\n"
     ]
    }
   ],
   "source": [
    "best = gs.best_estimator_\n",
    "print(\"Best estimator score: \", best.score(X_test, y_test))\n",
    "print(best.coef_[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'C': 0.89021508544503924}"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gs.best_params_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Nonlinear Decision Boundary using Logistic Regression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(150, 2) (150,)\n",
      "Acuracy score:  0.96\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nN8aYBvH/Ab4E3jcosvmpAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1186906a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from mlxtend.plotting.decision_regions import plot_decision_regions\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "y = np.where(iris.Species == \"Iris-versicolor\", 1, 0)\n",
    "X = iris.loc[:, [\"PetalLength\",\"SepalLength\"]].values\n",
    "print(X.shape, y.shape)\n",
    "lr = LogisticRegression()\n",
    "poly = PolynomialFeatures(degree=2)\n",
    "\n",
    "pipeline = Pipeline([(\"poly\", poly), (\"lr\", lr)])\n",
    "\n",
    "pipeline.fit(X, y)\n",
    "\n",
    "plot_decision_regions(X, y, pipeline)\n",
    "plt.xlabel(\"PetalLength\")\n",
    "plt.ylabel(\"SepalLength\")\n",
    "\n",
    "print(\"Acuracy score: \", lr.score(poly.transform(X), y))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Multi Class classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler, LabelEncoder"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.900681</td>\n",
       "      <td>1.032057</td>\n",
       "      <td>-1.341272</td>\n",
       "      <td>-1.312977</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.143017</td>\n",
       "      <td>-0.124958</td>\n",
       "      <td>-1.341272</td>\n",
       "      <td>-1.312977</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.385353</td>\n",
       "      <td>0.337848</td>\n",
       "      <td>-1.398138</td>\n",
       "      <td>-1.312977</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-1.506521</td>\n",
       "      <td>0.106445</td>\n",
       "      <td>-1.284407</td>\n",
       "      <td>-1.312977</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.021849</td>\n",
       "      <td>1.263460</td>\n",
       "      <td>-1.341272</td>\n",
       "      <td>-1.312977</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3\n",
       "0 -0.900681  1.032057 -1.341272 -1.312977\n",
       "1 -1.143017 -0.124958 -1.341272 -1.312977\n",
       "2 -1.385353  0.337848 -1.398138 -1.312977\n",
       "3 -1.506521  0.106445 -1.284407 -1.312977\n",
       "4 -1.021849  1.263460 -1.341272 -1.312977"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = iris.iloc[:, 0:4].values\n",
    "y = iris.Species.values\n",
    "scaler = StandardScaler()\n",
    "X_std = scaler.fit_transform(X) \n",
    "pd.DataFrame(X_std).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "le = LabelEncoder()\n",
    "y = le.fit_transform(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(X_std, y, test_size = 0.3, random_state = 100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'C': 23.101297000831579}"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = LogisticRegression(max_iter=100, random_state=100)\n",
    "\n",
    "param_grid = [\n",
    "    {\"C\": 10 ** np.linspace(-5, 5, 100)}\n",
    "]\n",
    "gs = GridSearchCV(cv=5, estimator = lr, scoring=\"accuracy\", param_grid= param_grid)\n",
    "gs.fit(X_train, y_train)\n",
    "gs.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([-3.16898056, -0.753681  , -7.42016236]),\n",
       " array([[-1.02848129,  2.5037609 , -2.73071943, -2.64698775],\n",
       "        [ 0.4464633 , -1.60984692,  0.77761392, -1.17260505],\n",
       "        [-0.71255595, -0.76267791,  6.045267  ,  5.84569189]]))"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = gs.best_estimator_\n",
    "lr.intercept_, lr.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>intercept</th>\n",
       "      <th>SepalLength</th>\n",
       "      <th>SepalWidth</th>\n",
       "      <th>PetalLength</th>\n",
       "      <th>PetalWidth</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-3.168981</td>\n",
       "      <td>-1.028481</td>\n",
       "      <td>2.503761</td>\n",
       "      <td>-2.730719</td>\n",
       "      <td>-2.646988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.753681</td>\n",
       "      <td>0.446463</td>\n",
       "      <td>-1.609847</td>\n",
       "      <td>0.777614</td>\n",
       "      <td>-1.172605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-7.420162</td>\n",
       "      <td>-0.712556</td>\n",
       "      <td>-0.762678</td>\n",
       "      <td>6.045267</td>\n",
       "      <td>5.845692</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   intercept  SepalLength  SepalWidth  PetalLength  PetalWidth\n",
       "0  -3.168981    -1.028481    2.503761    -2.730719   -2.646988\n",
       "1  -0.753681     0.446463   -1.609847     0.777614   -1.172605\n",
       "2  -7.420162    -0.712556   -0.762678     6.045267    5.845692"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "coeffs = pd.DataFrame(np.hstack([lr.intercept_.reshape(-1, 1), lr.coef_]))\n",
    "coeffs.columns = [\"intercept\", *iris.columns[0:4]]\n",
    "coeffs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.93333333333333335"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy_score(y_test, lr.predict(X_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Decision Tree Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(105, 2)\n"
     ]
    }
   ],
   "source": [
    "X = iris.iloc[:, [2,0]].values\n",
    "y = iris.Species.values\n",
    "scaler = StandardScaler()\n",
    "X_std = scaler.fit_transform(X) \n",
    "pd.DataFrame(X_std).head()\n",
    "le = LabelEncoder()\n",
    "y = le.fit_transform(y)\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30, random_state = 100)\n",
    "print(X_train.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=4,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "            min_samples_leaf=1, min_samples_split=2,\n",
       "            min_weight_fraction_leaf=0.0, presort=False, random_state=None,\n",
       "            splitter='best')"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree = DecisionTreeClassifier(max_depth=4)\n",
    "tree.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x119260ba8>"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEKCAYAAAARnO4WAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8lPWV+PHPmVwkQMI1kJCA8QpqEaqRYmutrZZqqy5W\npSiKbt0fFFvblVKt7dbu2nu3Sn21K4VqK1bFAooVVwGRutbuogIFuRlELiHhYrjlxiWTmfP7Y2bC\nZDK3TOY+5/16zQvmmedyzG5PvpznzHlEVTHGGJP9HKkOwBhjTHJYwjfGmBxhCd8YY3KEJXxjjMkR\nlvCNMSZHWMI3xpgcYQnfGGNyhCV8Y4zJEZbwjTEmR+SnOoBOli61r/2mqaXvDIVx41Idhomgpteb\njLsk1VGYZLq8/+US7b62wjfGmBxhCd8YY3KEJXxjjMkRlvCNMSZHpNdN2yCcDgd1gwZxoqAg1aGE\n1MvppPLQIQrc7lSHYowxIaV9wq8bNIji8nKqSkoQifpmdNKoKoeamqgDzmhoSHU4xhgTUtqXdE4U\nFDAoTZM9gIgwqKQkrf8FYowxkAEJH0jbZO+T7vEZYwxkSMI3xhjTc5bwo7Bs5UpGXnIJZ190ET+f\nPTvV4RhjTEws4Ufgcrn4+ne+w6uLFrFl9WoWPP88W95/P9VhGWNMt6V9l053fO5zn6MpSKdMSWkp\nq1atiumc76xdy9lnnsmZVVUATP7yl/nLK69w/qhRPQnVGGOSLqsSflNDA2sGD+6yvboH7ZL1+/Yx\nvKKi433lsGG8vXZtzOczxphUsZKOMcbkCEv4EVSUl7Onvr7jfd3evVSUl6cwImOMiY0l/Aguuegi\nPvjwQ3bu3k1bWxvPvfAC119zTarDMsaYbsuqGn4i5Ofn89tf/pIv3HgjLpeLr06ZwgXnnZfqsIwx\nptuyKuGXlJYGvUFbUlrao/N+ccIEvjhhQo/OYYwxqZZVCT/W1ktjjMkFVsM3xpgcYQnfGGNyhCV8\nY4zJEZbwjTEmR1jCN8aYHGEJPwpf/cY3GHLOOXzs0ktTHYoxxsTMEn4U7rzlFpYtXpzqMIwxpkey\nMuEfPHSIL02ayqHDh+Nyvss/9SkGDhgQl3MZY0yqZGXC//3853h7bTPznlyQ6lCMMSZtZF3CP3jo\nEPMXrKBsyG+Zv2BF3Fb5xhiT6bIu4f9+/nM426+lV6+RONuvtVW+McZ4JTThi8i9IrJZRDaJyAIR\n6ZXI6/lW98V9bweguO/ttso3xhivhCV8EakAvglUq+rHgDxgcqKuB6dW9/n5nscc5ucPjssq/5a7\n7uLSCROo2b6dygsu4Ik//Ske4RpjTFIlelpmPlAkIk6gN7A3kRd77Y2/096+n4aDCwK2l/HAzK/H\nfN4FTzzR09CMMSblEpbwVbVeRH4F1ALHgRWquiJR1wNY9dKziTy9McZktESWdAYA/wScAQwD+ojI\nbUH2myYia0RkzbxlyxIVjjHG5LxElnSuAnaqagOAiLwAfBJ42n8nVZ0HzANg6VJNYDzGmCyzeuVq\nFj+1mH21+ygfUc5NU29i/FXjUx1W2kpkwq8FxotIbzwlnSuBNQm8njEmh6xeuZq5c+ZSOa2SsSPH\n0lTTxNw5cwEs6YeQsJKOqr4NLAbWARu915qXqOsZY3LL4qcWUzmtkv4X9MeR76D/Bf2pnFbJ4qds\n7lUoCe3DV9UfquooVf2Yqt6uqicTeT1jTO7YV7uPkpElnbaVjCxhf+3+FEWU/rLum7bxtqeujs9e\ndx3njx/PBZdeyqO/+12qQzLGAOUjymmqaeq0rammibIRZSmKKP1Zwo8gPz+fh3/8Y7asXs3qFSv4\nr8cfZ8v776c6LGNy3k1Tb6JuXh1HNx/F3e7m6Oaj1M2r46apN6U6tLSV6C9eJd2rK1cy+6nH2Fm7\nmzNGnM69U+/mmquuivl85WVllJd5VgzFxcWcd+651O/bx/mjRsUrZGNMDHw3Zhc/tZidtTspG1HG\n9BnT7YZtGFmV8F9duZJZc37AiGkjuGRkNUdqjjJrzg8AepT0fXbV1vKP997jExdf3ONzGWO66m6b\n5firxnc7wc//1XyWPLeEY83H6F3cmxsm38Ads+7oURyZIqsS/uynHmPEtBEMumAggOfPaZ7tPU34\nLS0t3Dh1Kr/+2c8oKSmJfIAxpluS0WY5/1fzWfjiQoY/MJzi0cU0b2xm4eyFAB1JP5vbPbOqhr+z\ndjcDRvbvtG3AyP7sqt3do/M6nU5uvOMOptx8M1++7roencsYE1wy2iyXPLeE4fcOp+SiEqRAKLmo\nhOH3DmfJc0uSGkeqZFXCP2PE6RypOdpp25Gao1SNOD3mc6oqd91zD+edey4zvx77ADZjTHjJaLM8\n1nyM4tHFnbYVjy7mWPOxpMaRKlmV8O+deje182o5tPkw7nY3hzYfpnZeLfdOvTvmc/599Wr+9Oc/\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1191a0eb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_regions(X, y, tree)\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")\n",
    "plt.legend(loc = \"upper left\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9555555555555556"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Show the tree\n",
    "\n",
    "You need to install a software graphviz. On centos it is available in standard yum repo."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.tree import export_graphviz\n",
    "export_graphviz(tree, out_file = \"tree.dot\", feature_names = [\"PetalLength\",\"SepalLength\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Convert the .dot file into a png"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/bin/sh: dot: command not found\r\n"
     ]
    }
   ],
   "source": [
    "!dot -Tpng tree.dot -o tree.png"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We used 2 parameters for model training because we wanted to plot the decision region. Let's retrain the model using all features and compare the performance with logistic regression."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean accuracy using all features over full dataset:  0.96\n"
     ]
    }
   ],
   "source": [
    "X = iris.iloc[:, 0:4].values\n",
    "y = iris.Species.values\n",
    "X_std = scaler.fit_transform(X)\n",
    "tree = DecisionTreeClassifier(max_depth=4)\n",
    "mean_cv_accuracy = np.mean(cross_val_score(cv = 5, estimator=tree, X=X_std, y=y))\n",
    "print(\"Mean accuracy using all features over full dataset: \", mean_cv_accuracy)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We got above the accuracy of the tuned model using logistic regression 95.56. We can run tuning over tree max_depth and other parameters to tune the model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.97333333333333338, {'max_depth': 3})"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tuning_grid = {\"max_depth\": np.arange(1, 10)}\n",
    "tree = DecisionTreeClassifier()\n",
    "grid_search = GridSearchCV(cv=5, estimator=tree, param_grid=tuning_grid, scoring=\"accuracy\")\n",
    "grid_search.fit(X_std, y)\n",
    "grid_search.best_score_, grid_search.best_params_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After tuning we got a better result 0.9733."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Random Forest Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(105, 2)\n"
     ]
    }
   ],
   "source": [
    "X = iris.iloc[:, [2,0]].values\n",
    "y = iris.Species.values\n",
    "scaler = StandardScaler()\n",
    "X_std = scaler.fit_transform(X) \n",
    "pd.DataFrame(X_std).head()\n",
    "le = LabelEncoder()\n",
    "y = le.fit_transform(y)\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X_std, y, test_size = 0.30, random_state = 100)\n",
    "print(X_train.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.955555555556\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x11859cf60>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1184dd908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "forest = RandomForestClassifier(max_depth=4, random_state=123)\n",
    "forest.fit(X_train, y_train)\n",
    "print(\"Accuracy:\", forest.score(X_test, y_test))\n",
    "plot_decision_regions(X_std, y, forest)\n",
    "plt.xlabel(\"Petal Length (standarized)\")\n",
    "plt.ylabel(\"Sepal Length (standarized)\")\n",
    "plt.legend(loc = \"upper left\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SVM Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(105, 2)\n"
     ]
    }
   ],
   "source": [
    "X = iris.iloc[:, [2,0]].values\n",
    "y = iris.Species.values\n",
    "scaler = StandardScaler()\n",
    "X_std = scaler.fit_transform(X) \n",
    "pd.DataFrame(X_std).head()\n",
    "le = LabelEncoder()\n",
    "y = le.fit_transform(y)\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X_std, y, test_size = 0.30, random_state = 100)\n",
    "print(X_train.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy 0.977777777778\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x117c37a20>"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11866f7f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svc = SVC(gamma=1, C =1, kernel=\"rbf\", random_state=345)\n",
    "svc.fit(X_train, y_train)\n",
    "print(\"accuracy\", svc.score(X_test, y_test))\n",
    "plot_decision_regions(X_std, y, svc)\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")\n",
    "plt.legend(loc = \"upper left\")\n",
    "plt.title(\"SVM classifier using gamma = 1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy 0.977777777778\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x118542128>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEWCAYAAABmE+CbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucVHX9+PHXe2+yC7tcBFnY5ZIKSyAXFRCt0FLTUhES\nzSTR0h9kWd9UuphZVlbmjfqa0ZKWkKQhSqF9DSU0zKQFjTsuIpdlFxYW2PsFdmc+vz/OmeXM7Mzs\nzO7c9/18PObBzjlnzvnMAvOez+d93p+PGGNQSiml0uLdAKWUUolBA4JSSilAA4JSSimbBgSllFKA\nBgSllFI2DQhKKaUADQg9kog8ICLPRvH820XkEvtnEZE/iEi1iJSIyCdEpDRa1w6ViPxWRO6PdzuU\nSiQaEGJARD4uIv8WkVoROS4ib4vIFBGZJiKNItLHz2v+KyJ3ishIETEi8l+f/QNF5KSI7IvZGwmR\nMWacMeZN++nHgcuBQmPMVGPMW8aYovi1zmKM+Yox5ifxbkeqEZEsEVkhIvvsf7eX+OwXEfmFiByz\nH78QEQnj/ENE5GkROSQi9SLyvoj8SER6x+o9pDINCFEmInnAK8ATwACgAPgRcMIYsx4oB2b7vOYc\nYCzwnGNzjr3d4yZgbxSbHikjgH3GmMbunkhEMiLQHhV9/wK+CFT62TcPmAlMBCYA1wDzQzmpiAwA\n3gGygQuNMblYXzb6Amd1v9legr2H1GWM0UcUH8BkoCbI/u8Ba322PQystH8eCRjg+8AjjmM2Avdh\nfdgGOvc44HXgOHAY+J69/QHgWcdxL2D9w68F1gHjHPs+C+wA6oEKYIG9fSBWoKuxz/8WkGbv2wdc\nBtwGtAAuoAErEF4ClDvOPxR4EajCCnDfcOx7AFgBPAvUAbf7eY9vOrcDtwL/sn8WYCFwxH79VuAc\ne98zwIP2z5dgBeZ77GMPAV9ynPN04GX7HBuABz3XCPB7nwvsB44B93t+H/a+qVgfajX2dX4NZDle\na4CvAh/Yv/OfYH3Y/du+/nLP8Y52f9vR7pn239ku++/le45zB712FP7tlwOX+Gz7NzDP8fzLwPoQ\nz/eg/XeYFsP/vx3eQyo/tIcQfbsAl4gsEZHPiEh/n/1/BKaLyDAAEUnD+va/xOe4Z4EbRSRdRMYC\nfYD/BLqoiOQCa4C/Y33ong38I8DhrwKjgDOA94Bljn1PA/ON9W3sHGCtvf0erP8sg4DBWIHNax4U\nY8zTwFeAd4wxfYwxP/RpYxrWB+1mrJ7TpcA3ReQKx2HXYgWFfj7tCsWngenAaKxvkTdgfUj7k28f\nU4AVyJ50/F09CTTax9xiP/yy/25+A8wBhjjO6eEC7sIKqBdiveev+pzmCuB8YBrWh/1irG+rw7D+\nDr7g0+5e9jV+APzOPvZ84BPA/SLykTCu7XwvNUEe3w30uk6Mw/r79thsbwvFZcBLxhh3qBeL0ntI\nWRoQoswYU4c1jm6w/rNWicgqERls7z+A9S33ZvsllwKnAX/zOVU5UIr1n2IuViAJ5mqg0hjzmDGm\nxRhTb4zxG0CMMb+395/A+lY+UUT62rtbgbEikmeMqTbGvOfYPgQYYYxpNVZuINyJsaYAg4wxPzbG\nnDTG7MH6Hd3oOOYdY8xfjDFuY0xzmOdvBXKBMYAYY3YaYw4FOfbH9nv5P6weTZGIpAPXAT80xjQZ\nY3bQMVg7zQZeNsb8yxhzEutDuv33Yox51xiz3hjTZozZBxQDF/uc42FjTJ0xZjuwDXjNGLPHGFOL\nFbzP9Wn3T40xrcDzWB/2v7L/Prdj9e4mhnHtdsaYfkEeDwX5HQTTB6sn6lEH9Akxj3A6Vs8mZFF6\nDylLA0IM2B9EtxpjCrG+4Q0Ffuk4ZAmnAsLNwPP2f3BfS7GGRL5A5wFhGPBhZ22zexwPiciHIlKH\nNbwB1gcLWB+GnwX2i8g/ReRCe/sjwG7gNRHZ08VvWyOAoc5vbVg9jcGOYw504bwAGGPWYg2LPAkc\nEZHFdk7Hn2PGmDbH8yasD69BQIZPO4K1aahzvzGmCUevRERGi8grIlJp/75/xqnftcdhx8/Nfp47\nb0I4ZoxxOfb5e32fMK4dbQ2A8++gL9AQ4peJY1hfQlSUaECIMWPM+1jj184E8UtAoYh8Evgcgb+B\nvghcBewxxpR1cqkDwJkhNOkmrGGZy7D+c460t4vd3g3GmGuxhpP+gjWGjf0N9B5jzJnADOBuEbk0\nhOv5tnGvz7e2XGPMZx3HdPZB0QjkOJ7nO3caY/7XGHM+VpJ+NPCtMNtYBbQBhY5tw4Icf8h5rIhk\nY32z9VgEvA+MMsbkYQXAkO+y6aawri0iDUEe3+tiG7Zj91hsE+1toVgDzLKHGkMSpfeQsjQgRJmI\njBGRe0Sk0H4+DOsb/nrPMca6A2cF8AdgvzFmo79z2cd9Crg9hEu/AgwRkW+KyGkikisiF/g5Lhc4\ngfXtKwfrW6On7VkiMkdE+to9ljrAbe+7WkTOtrv6tVjj0yGP7dpKgHoR+Y6IZNu9lXNEZEoY59gE\nfE5EckTkbKzxf0/7p4jIBSKSiRU4WsJto/3t+yXgAfsaY7CG7AJZAVwjIheJSBbWEJzzQzcX6/fY\nYJ/rjnDa001hXdvO+wR6/CzQ6+x/b73sp1ki0ssxJLQU68tDgYgUYOWinnG89k0ReSDAqR/H6l0s\nEZER9vEFIvK4iEyI4XtIWRoQoq8euAD4j4g0YgWCbVj/EZyWYA2hLA12MmPMRmNMp0NBxph6rFvy\nrsG6g+gD4JN+Dl2KdUdMBdZ483qf/TcD++whhq9gJUvBSkKvwRoCeAf4jTHmjc7a5dNGF1auYxLW\nHUZHgaeweiqhWgicxBomWYJ34jkPKydRzam7fh4Jp422O+02VWIN1T2HFUQ7sMftv441nn8I6/dz\nxHH8AqxeWb3dtj93oT1dFatrl2INVRUAq+2fR9j7irFuJNhqP16xt3kMA972d1JjzHHgIqy8yX9E\npB7rRolarOHLWL2HlCXh5wGV6tlE5BdAvjEm4N1GjmP7YN3mOcoYkwx1I3Fj96KXG2Muindbeirt\nISjVCXvYb4JYpmINS60Mcvw19vBSb+BRrG/C+2LT2uRljCnXYBBfGhCU6lwuVh6hEWuY5THgr0GO\nvxY4aD9GATd24ZZcpWJOh4yUUkoB2kNQSillS6rJwtbVrNPujFJKhWl6v+kh3TKrPQSllFKABgSl\nlFI2DQhKKaUADQhKKaVsSZVU9qsNco7nkN6aHu+WBOTKdNE0oCkVfttKqRSW9B9ROcdzGNxvMH37\n9yUR554yxlB7vJbDxw/TdEZTvJujlFIBJf2QUXpresIGAwARoe+Avgndg1FKKUiBgAAkbDDwSPT2\nKaUUpEhAUEop1X0aECLk9dWvc96485g4ZiKPP/x4vJujlFJh04AQAS6Xi3u+cQ8vvvwiG7ZsYMXz\nK3h/x/vxbpZSSoUl6e8yCsfV0y6moepoh+19Bg3klfX/7PJ5N5Zs5MyzzuQjZ34EgOs+fx1/e/lv\njBk7psvnVEqpWOtRAaGh6iglAwd22D7VT5AIx6GDhygsPLUG+9CCoWws8bssslJKJay4DRnZi1aX\niMhmEdkuIj+KV1uUUkrFt4dwAviUMaZBRDKBf4nIq8YY30XeE96QoUMoLy9vf36w4iBDC4bGsUVK\nKRW+uPUQjKXBfpppP5JyvYPzp5zPnt172Ld3HydPnuTFP7/IZ6/+bLybpZRSYYnrXUYiki4im4Aj\nwOvGmP/4OWaeiGwUkY2rnlkV+0aGICMjg0d+9QizrprF5PGTmXX9LD467qPxbpZSSoUlrkllY4wL\nmCQi/YCVInKOMWabzzGLgcXQ/RXT+gwa6DeB3GdQx0RzuK74zBVc8Zkrun0epZSKl4S4y8gYUyMi\nbwBXAts6O76runNrqVJKpbp43mU0yO4ZICLZwOWAVnMppVScxLOHMARYIiLpWIFpuTHmlTi2Ryml\nerS4BQRjzBbg3HhdXymllDedy0gppRSgAUEppZRNA0IEfPX2r3Lm0DO5YNIF8W6KUkp1mQaECJhz\nyxxeeuWleDdDKaW6pUcGhGNHjzH7mi9y7NixiJzvY5/4GP0H9I/IuZRSKl56ZED4w1PPsXFDHX/4\n3XPxbopSSiWMHhcQjh09xnN/XM3gwU/y3B9XR6yXoJRSya7HBYQ/PPUcbW1X0atXEW1tV2kvQSml\nbD0qIHh6B336zAWgT5+52ktQKoGtX7OeBXMXMOeSOSyYu4D1a5JuuZSk0qMCgqd3kJFhzW6akTEw\nIr2EL33xS1z2icv4oPQDxowcw9LfL41Ec5Xq0davWU/xomKy52Qz6ZlJZM/JpnhRsQaFKEqI2U5j\n5c1/vEVb22GOHn3eZ/tgFnz3zi6f9w/P/qG7TVNK+VixdAWF8wrpN64fgPXnPGv7tMumxbl1qalH\nBYRXXv9zvJuglArRobJDTCqa5LUtryiPvWV749Si1NejhoyUUsljyPAh1JXWeW2rK60jf3h+nFqU\n+jQgKKUS0uy5sylfXE7N9hrcbW5qttdQvric2XNnx7tpKatHDRkppZKHJ0+wYukK9pbtJX94PvPv\nmK/5gyjSgKCUSljTLpumASCGdMhIKaUUoD2EiCg/UM78L83nyJEjiAi33nYrX/3GV+PdLKUS0vo1\n61mxdAWHyg4xZPgQZs+dHZFewJJHl7Dy+ZU01TeRk5vDrBtnccuCW6J6zVSjASECMjIy+OnDP2XS\neZOor69n+gXT+dRln2LM2DHxbppSCcVTbFY4r5BJRZOoK62jeFExQLc+oJc8uoTlf1nOsHuHkTs+\nl/qt9SxfuByAoklFUblmKupxQ0avr36dmdfP5Nwp5zLz+pm8vvr1bp8zf0g+k86z7pfOzc2laEwR\nBw8e7PZ5lUo1zmKztIw0+o3rR+G8QlYsXdGt8658fiXD7hpG3nl5SKaQd14ew+4axsrnV0btmqmo\nRwWE11e/zvd/+X0ybsrg/KXnk3FTBt//5fcjEhQ89u/bz5ZNW5g8dXLEzqlUqjhUdoi8ojyvbXlF\neVSWVXbrvE31TeSOz/Xaljs+l6b6pqhdMxX1qIDw5FNPMmzeMAacM4C0jDQGnDOAYfOG8eRTT0bk\n/A0NDdx8w8089NhD5OXldf4CpXqYSBabOSe+kzShdkut1/76rfXk5OZogVsYelRA2L9vP/3G9PPa\n1m9MP/bv29/tc7e2tvLFG77IDV+4gRmzZnT7fEqlokgVm/lOfDf44sEceOwANe/WYFoNde/VcWDh\nAWbdOEsL3MLQo5LKI0aOoOb9GgacM6B9W837NYwYOaJb5zXG8LX/9zWKxhRx511dnyRPqVQXqWIz\n34nvJn5/Ipsf3Mz++/dj3Iac3BxuuPGG9ruMInHNnqBHBYSv3f41vv/L78M8q2dQ834NBxYf4MFv\nPtit865/ez3PL3ueceeM42PnfwyAHzz4A674zBWRaLZSKSUSxWb+Jr4b/93xuN938+ybz0blmj1B\n3AKCiAwDlgKDAQMsNsb8KprXvPyKywErl/DuvncZMXIED37zwfbtXXXhxy+krrWu8wOVUhHhyQt4\negigeYFIiGcPoQ24xxjznojkAu+KyOvGmB3RvOjlV1ze7QCglIqv2XNnW7UE86w7hupK6yhfXM78\nO+bHu2lJLW4BwRhzCDhk/1wvIjuBAiCqAUEplfx04rvoSIgcgoiMBM4F/uNn3zxgHsA9C+9hxq0d\n7+AxxiAi0W1kNxhj4t0EpVKO5gUiL+4BQUT6AC8C3zTGdBiIN8YsBhYDrKtZ1+GT1ZXpovZ4LX0H\n9E3IoGCMofZ4La5MV7ybolRC0HmFEldcA4KIZGIFg2XGmJe6co6mAU0cPn6Yo0ePRrZxEeTKdNE0\noCnezVAq7qI1l5GKjHjeZSTA08BOY8zjXT5RBjSdoR+2KnmVbOje66dOiUw7YsG3fqDfuH4wz9qu\nASH+4tlD+BhwM7BVRDbZ275njPm/OLZJqZjwDQJFLdO7dJ7SXuu8zpXowcFf/UBeUR57y/bGqUXK\nKZ53Gf0LSLxBf6WiwF8voKtBINA5nMEhUQNDKPUDmmOIn7gnlZVKZZ4P6Eh8+HfGc43SXuuifq2u\n6qx+QHMM8aUBQakocPYIYhEMAl0/0XoKndUPaI4hvjQgKBVB8Q4Ezusmak8hWP2A5hjiSwOCUhGQ\nCIHAn5INseslBBv7d+7L6ZODcRmam5s7HKdzFMVXj1oPQalocOYJEikYeNrS3dtaQ+G7PkH2nGyK\nFxWzfs16r32jnhiFe5abKqli6P8b6nUcRG69BNU1kkzTKvirVFYqXmKZMO6O0l7rot5LWDB3Adlz\nsr2+2ddsr6F5WTNA+77yfeWkDUijeW8zR5ce5YLHLmg/7tGljwKnehOVZZXkD8/Xu4wiYHq/6SHd\n0alDRkp1QbIEA49oDx0FG/s3mPZ9rSdbyemVQ+/RvTlQccDrOA+doyh+dMhIqS5KlmAQi3YGW7fY\nuS8zKxNXi4vGXY1kF2R7HafiTwOCUmEq2ZA8wSBWfMf+D5UcYvODm9m7fS81VTXs/tVuarbX0Ldv\nX2reqaHiyQpGzBihOYIEo0NGSoUhFgnaZOSsI9hZupPmk82M/MJIRt4wkrrSOnY9tIvKJyppbmgm\nu082g8wgDv3ukK5jkGA0qaxUGJK1d+CpSYjFLajBEsyexLGKrVCTyjpkpFQISjYkd+8glkHsUNkh\n8oryvLblFeVRWVYZszaortGAoFSIEqXOoK7uKD/60XXU1R2Ld1P8CpZgVolNA4JSnUi0nsHq1UvZ\ntaua1auXxLspfmlxWfLSpLJSIUiEngFYvYO1a1+hf/9FrF17B1dccQt5eafHu1leOpvATiUuDQhK\nJZHVq5ficl1NdnYRDQ1Xs3r1Eq6//u54N6sDLS5LThoQlAoikYaLPL2D7OzlAGRnz2Xt2hu8egl1\ndUdZuHA+d9212Kvn8O57r/L8Gz/kVzWdLzoT6gI1upBN6tEcglKdSJThIk/vID19IADp6QNxua72\nyiX4yy+8+96rLHltAX2/1HHiOV/BJqnrynEquWhAUCpJbNr0Ji7Xn6itndz+cLn+xKZNbwK++YVX\n2u9CWvWPhRTcPpy8j/YjLSONfuP6UTivkBVLV3S4hnOBmmDHhnqcSi46ZKRUAIk0XATw05+uCro/\nUH7h8JG9TBw1hVYa248NtOhMqAvU6EI2qUl7CEoFkSjDRYF4ahIqKnbZ+YW5gCe/YPUSBp/xEeo+\nqPZ+XYC6AN8agsb6Rj544wOOHz3OgrkL2oeEOqs1WL9mPQvmLmDOJXO8XqcSW/oDDzwQ7zaEbH/L\n/gfi3QbVc1QchIFtI+LdjKBWrfotb7+9hT173qK+/nJ69boUgLS0HE6cOIYxm5l2/jW89cILZIxI\nI+eMLGp31lK+uJy5t8+l8MxCr/Pl5ebxRvEbZA3PojWzlbL1ZVStqOKjX/0o2dOyeaP4DfJPz2fs\nxLHtx2UN8D5n+Z5yihcVc/qXTmfE7SNwD3W3v873eio2RvQa8aNQjut0yEhETgOuA0Y6jzfG/Lir\njVNKdZ8zZ7Bjxwxyc/dSW/snr2M2bRraflvq83/4IYdqgtcFOGsItr+7neyR2RTNLWLwxwdbB9gL\n3nvmJPJXa7Bg7oL2/AJg/Wm/Tu9CSmyh5BD+CtQC7wInotscpVSonDmDAQPmc/nlBKxJ6HNRb26/\n6NGQJrfz1BDMuWQOk56cRFrGqZFlZ54gUK2B5heSVygBodAYc2XUW6JUgohHMjlQ/UCgYx955Esc\nPlxDdvZKoPOaBHqdmuk01PoBfwve71u+j4aGBuZcMgfTZqirr+Nky0lycnOYMmUK1Y3VVB+t5oM3\nPqBwWiG9c3tbbdG5jJJCKEnlf4vI+GhcXER+LyJHRGRbNM6vVFfFeiK7cOYnWr16KTt3HqWhYWDY\nNQnh1A/4zkm050972LdqH2d/72wG3DyAupw6Bn19EGOfG8sZ3z2Df236F0dyjjDu3nEcfuEw+/+9\nn/rqep3LKIkEDAgislVEtgAfB94TkVIR2eLYHgnPANr7UD1aoPqBYMeKPEBz82aqqyd1WpPw9zeW\n01hXC4RXPzDtsmnMv2M+zcua2XzrZiqWV/DRuz/KkKlDKPtrGUPvHErehXm0NrTS+5zeFN5TyJGS\nI+RfnE/R3CKqX6rmPzf+h+ZlzTqXUZIINmR0dbQvboxZJyIjo30dpRJZOPMTeY4dNuwKGhruDJg3\n8Dpn4zVUbH4NLr0+7PF9Z55gziVzGHyelVw+cfgEvcf0hnRwt7pxGze9x/emrbENgMEfH8ygaYPY\nfOtmXRQniQTsIRhj9htj9gMPen52botVA0VknohsFJGNq54JXpijVHfFOn/g+SaflXUVBw9eR1bW\n1R16CaHUGvg7p+R8jhap57TsOfz9uQ3UHq/t1loFzteeNvg0Gt9vxN3iJi0zjTRJo3FrIxm9T33H\n1LxB8gklhzDO+URE0oHzo9Ocjowxi40xk40xk2fcOiNWl1U9WKxzBy7X1TQ0/I2WlmoaGl4JmAso\nLv5Op3MZOc+Znn46vXtDXt7puNqu4eVnXuvWWgXO1w6/djgHf32QunfqyOyTSeO2RsofK+eMqWfo\nGghJLOCQkYjcC3wPyBYRz1cKAU4Ci2PQNqVS3qZNb9LaWkZtbR0iT1Bb+3X69ctj06bhXH/93T61\nBpeRm7s/aK2B55wt7j2c1vx7appPHbfxzQF88e7rga6tVeCsUaguqyavLY+qJ6qoaKkgJzeHj0/5\nONWN1Wy+dbOugZCkxJjg69aLyM+NMfdGrQFWDuEVY8w5nR27rmZd8MYq1Q2e4aJYT1fxwguP8/rr\n0KfP3TQ0PO6VFwi2L5jSXutCqjlQPcP0ftMllONCqUN4QUTO89lWC+w3xrSF3TIHEXkOuAQYKCLl\nwA+NMU9355xKdUesg0GwNQ7A2PmFZRw8uJuBA29i7dqbOl0lrbTXug7bnLUH2dnZSLrQ1NAUsbUR\nwj1WJaZQAsJvgPOALVhDRuOBbUBfEbnDGPNaVy9ujPlCV1+rVCTFa2bTztY4cLmuprlZaGlx0dAA\nWVmhrZLm7B14ag8K5xUy9OhQdi3bxcBZAxk1dRSugy6KFxUDdPjwdr5uUtEk6krrInKsSlyhJJUP\nAufaid3zgUnAHuBy4OFoNk6pWIrHzKbB1jiw8gvPUls7BZEbqK2dQmvrs+21BqFy1h7sX7Wfgq8V\n0O/CftTW1kZkbYRwj1WJK5QewmhjzHbPE2PMDhEZY4zZIxLSsJRSCSteeQOPztY46GoOwclZe9Bc\n0Uzv0b2RdOHESWtqsu6ujRDusSpxhdJD2C4ii0TkYvvxG2CHPQtqa5Tbp1TUxDsYdOZUfiF43UFn\nnPUD2QXZNO5qxNXiIjMr07pOiGsjROpYlbhCCQi3AruBb9qPPfa2VuCT0WqYUtFSsiH+wcBTbObv\nw92z769/XRRS3UFnnPUDI2aMoOLJCmreqaFv377UbK9h5yM72blxJ58u+jQzJ89kyaNL2l+366Fd\nvD3/bd648Q3env827931Hu9vft/vsV2tb1CJo9MhI2NMM/CY/fDVEPEWKRUD8e4VOCee8x0C8uyr\nqHgRlyuj07qDzjjrByrLKhmUPQhZKez+424Mhvqaej7yk4+QOz6X+q31LF9o3fFUNKmItOw0Bs4e\nSGZhJs17mjn4zEEGXjmQIV8Y4nXsLQtuab9GuPUNKnGEUofwMeABYATeC+ScGdWW+aF1CKo74t0r\n8KirO8p3vnMD6emLcLnu4Be/eMFryupA+0IVTg3CzMkzyb83n7zz8k617706Kn9eydljzyZ7Tnb7\n9Ncf7vyQ1tpWqv5cxeiHR3sd+5eNfwmrjSq2Qq1DCGXI6GngcaxZT6c4HkolhUQYInLy3GqalVXk\nd5qKQPuioam+idzxuV7bcsfn0lTfxKGyQ+QVnQoUbpc1gd3JQyc7HKtSQyh3GdUaY16NekuUiqJE\nCAQQuBDtoouu5re/vafTRW885/C3mM67773KS6sfZveejQwdNpj009Lbi8/GTxjP1i1bOxSN5eTm\nUL+13quHUL+1npzcnA4L5KSlp1G3oY62xja2fnErWUOy6HNOH3Jyczp931q0lhxC6SG8ISKPiMiF\nInKe5xH1likVASUbEicYQOBCtOLi74S06I3nHL4L37z73qsseW0B8vkmTp+bT1VaFe5ZbkY9MQpm\nwvK/LKf5nOYOi+LMunEWBxYeoO69Okyroe69Og4sPMCsG2d1SBS3lbVx8NcHOf3a0xn99GgGfX4Q\nx/5+jJGFI4O+53AW5VHxFUoP4QL7z8mObQb4VOSbo1RkJNIQkZNViHbQK1HsdrexY0czIv9Lc/Md\nVFdPIi0tw/GaU0lk78V07mjvPaz6x0KGfrmA+j411L/QQP68IeSO6UNtdS2cAcPuGkbV8irOvOlM\nr0XvPWsVrPz5SvbU7yEnN4cbbryhPUkMpxLFVYer6H9tf/p+rC8t+1rI6JdBwR0F7HtiX9D37Cxa\nA7yur72ExBLKXUZ6a6lKKokaDMB/Idqp4rPgi95A4MV0Dh/Zy4jBwzGNfTlZtYvsUYWQAa0nrfH+\n3PG5VCysaD+Ps2jslgW3eAUAJ+cCOZ8u+jTDvjwMyTyVnzQjDAd+diDoe9aiteTR6ZCRiAwWkadF\n5FX7+VgRuS36TVMqfIkcDJyCLXqzZs1fuf/+qwMufOM51lDAi6t/zvx7zqKxuYZ9L+4mLe10sgb1\npmX3CVqbWsnIzCAzK5P6rfVkF2SfOleQorH1a9azYO4C5lwyhwVzF7QP7XjyDU6efEMwWrSWPELJ\nITwDrAaG2s93YRWoKZVQkiUYQPBFb+rrL2bnzg+DLHwzkMamV2nq+2OG/M+ZjHx8JAXfKKDmnWMc\nfXU3/T5xFgcXlVNf0kAGmaQfSefAwgMMOn9Qp0Vjwcb7g+UbgtGiteQRSh3CBmPMFBH5rzHmXHvb\nJmPMpKAvjAKtQ1DBJFoCORBnrUFl5Qxyc7PbcwZut5uamioyMooYONDtVYdw330zqKw8CEADHzL0\nfwaTfVZfvwx5AAAgAElEQVRvMjKtKShq3z9Oxa/KwJ0GLkEyhPQMGDdlbPtdRpVlleQPzw94l8+C\nuQu8ag8AarbX0LysmUeXPsqSR5ew8vmVNNU3kZObw6wbZwUcbnLy3GXU2fVVdERyPYRGETkdK5GM\niEzDWg9BqYSQTD0D8M4DDBgwP+iCOM5KZmf+4SvfGsXoi88jLeNUJ3/IYDcn/gh3PfFUlxfH6Wy8\nP1i+IRhnLkIlrlCGjO4GVgFnicjbwFLg61FtlVIhSrRgEGyOIs/+QBPWBdpXUbHL65wVFaUcO1rJ\n8Z2Hvc69b+UumlpqePgb3mP/4ehsvD9QfkGlhk4DgjHmPeBi4CJgPjAOyA76IqWiLNGqjz381Qj4\n7g80YV2wGgXnOYuLv8uJY/nsXLiZmp3HcLe52fPC+xz4+y7O+k4R45/u+r3+wcb7tZ4g9XWaQ/D7\nIpEyY8zwKLQnKM0hWEo2ALt2hXbw6NEpt7ZuIgYCCG0eImcewCk/37pnw3ef291GfX0z+fmrcLnu\n4Jvf/Bn33vtFRF7C5b6SMeefSU3tEZpaajjrO0XknzuCE2n15OR4j/2HI9B4f2f5BZW4IplD8EdX\nxokBr2UdfQJAUeUErpnqPWTg6+WSwZSyhRJ/sWP06PYfkylgJGowgMA1Ak6dLYjjy5NTyMqyzvnY\nY3fgdt9EZuYEXK7byTq5ld8+8i++8q1RnDF+mNdru3qvf6Dxfq0nSH1dDQj6TT2KSpZZn+BFlRMc\nW30CwPDgwQDgmqmHuYbBHba/XDIYKq2fS/MdASOBexPO4JiIwcAz/p+VtYyDB3czcOBNrF17U4d5\niEJRUVHKd75zJfff/7zXvEfp6TdQUfG/ZGR8HgBJK2LbvoX8v7tGcqKtiX0rd3Hm9WMAaKxvpHx9\nOcePHmfB3AXMnjubMeeO4Wd3LOS+395N3wF9w36PvnMbgdYTpJqAAUFEXsb/B78A4f0LV53yBAGP\nBcMHh/Sh3xXOwOIJGB16EwkYHBIxEHh4egfNzUJLi4uGBsjK8t9L6Exx8XepqxvAY499Bbi5Padw\n/HgLMAdjVuN2l5E14mecMbeI/h/NIP1oJqW/3gxA/8/kcWTzAY6+eJRx946j18BeFC8qZnT+OHa+\n28bLz7zGF+++Puz3OHvubIoXFcM8q2dQV1pH+eJy5t8xP+xzqcQUMIcgIhcHe6Ex5p9RaVEQqZhD\n8OQDQhkCiqVHy+y22ENL8QoOiTxE5HTffTM4eLCcmpoqYABwnH79BjF0aGFYw0QVFaV8/etXIfIS\nra2XMmDAUNLTrTqDo0crsP6/tpLRr4WCu4aQfWYOaWnCR84cT+V/9/PhL0o5caKRnDOzOfvmsxn8\ncSvgH9tyjE0LdnBG3zW0tX2VJ1ff16VegtYTJKdQcwhdSirHSyoFBGdieMHwjsM6ieLlksGU5m+x\nnsSw15AsgcDJt4Yg2JxEgfzgB7PYsmU8mZk/prX1B0yYsJUf/3hlh+O+8q1RTHxqilcdgrvNzebb\nN9IqzVzw3CSvfccOHmfjnFJGFn5Ifc3/ctXNlV3qJajkFMkFclSEeYLBguGDEzoYgDW8tGD4YCuf\nsWsXJcvsx4bOX9tVyRgMgtUXOI8JVqNQUVHKtm1bSU+/A4D09DvYtm0rFRUfdDh28Bkfoe6Datyu\nNg4d/BC3q426D6rJze/HgMHetQQul4s9z+/DpLkpO3guda2rWfn0a9Qe1/pS5U0DQoyVLNvVPkSU\nTDyBoT2I7Yp8YEjU2oJQBKsvcB4TrEahuPi7uN03kZY2BIC0tCG43TdRXPztDsfOuPQuKp4qo2Lj\nXpqb2qjYuJeKp8r4+BWz+fKd3rUEO363k5p/VzPsriJG/fp8hnwjm+Y+Dfzm/t9F4TehkllX7zJS\nXeD5sItmwjhWFgwffCoRTeSGkpItEHj4W+fA2m6tZRBoHQOnDz74L1BCa+vTPtszO1zv/PM+Q1NT\nHU/+7E5c7t6kpzUya97XGDN5WvvfhWcdgyOVVRR8vZDsM5twm12cNhLyb+3D+uJ/R/JXoFJAV+4y\nAsAYM6O7FxeRK4FfAenAU8aYh7p7zkTlHCZKFddMPQwlE9rvTpo6Z3TnLwogmkNQsdBZ4jiUGoXn\nntsX1jUrD1WQl3YvffLu5njjTzlWUdkeDJy1BHMumcPYq8Z45xtGu9n8581hXU+lvmA9hKiWHopI\nOvAkcDlQDmwQkVXGmB3RvG48FVVOiFjP4FN3301dbccx4Ly+fVn7+OMRuUYoPLUOj5YdpmTZrm4F\nhWTsHfiub+x8DoaFC+dz++0/97uOcldqFJzXdZ7ztOw5bH/rRmqPf7rD3UNDhg9hzz/3YPINxhhE\nBKkUrR9QHQTMIRhj/hnsEYFrTwV2G2P2GGNOAs8D10bgvAnH0zuI5G2ldbW1bOzbt8PDX5CIBU/P\npyt5hWSZttof37yA83mwNQ/8rZUc7nU952yRetLTT8fVdg0vP/Nah2Pb6trYu2gvbXVt9BrZy+u5\nUk6hrJg2SkRWiMgOEdnjeUTg2gWAc+29cnub7/XnichGEdm46pnwyv4TSbIlkbvCeTdST+CdF3il\nffWz/v0XsWbNX3n99ZX077+IHTt20Nq6lNraye0Pl+tPbNr0ZpevbeUs/kRt7WQaai+ktflCXG3P\nsfHNjsNAO0t3MuDKAVQtr2LX7buoWl7FgCsHsLN0ZzfevUpFoSSV/wD8EFgIfBL4EjG8O8kYsxhY\nDKlVh5Cqrpl6mNIy61t/KInmZO8dOPMCnp5AdnYRx49fDGwlP7/jmgeR4MlZlPZaBwT/Xbe1tnHG\nF84gLdORQ2h1c/jZ5L6xQUVeKB/s2caYf2AVse03xjwAXBWBa1cAztm4Cu1tKsk5axZSlW/dQVbW\nVWzbtpWsrJtwuVppafksLS3HcbmO+a1JiKTOAm9GZgaNWxu9tjVubSQjU28yVN5C+RdxQkTSgA9E\n5E6sD+0+Ebj2BmCUiHzEPueNwE0ROK9y6Cz5HI3ktDPRnCx8k8Od8a07aGj4G273TTQ0ABwDRmLM\npZSXX05h4eu4XFezfPnDvPnmcn7xi9coKBjV7bZ4egf+eKaYOFR2iN6n9ebAYwcYds8weo/vTePW\nRsofK2f6JcnZM1PRE0pA+B8gB/gG8BPgU0D4a+j5MMa02QFmNdZtp783xmzv7nl7iry+fZkc4IPc\nyZN89uV5bWf7ewpnMjiUoR3fuoP6+gogjfr6ZwBwu1243SdxuQo4fHgKvXsP4B//OEpj4+kUF3/b\n73QUXWmLv96BZyGbwnmFTCqaRF1pHe99+z32f38/rjYXGZkZTL9kOvctuq/T96l6lk4DgjFmA4Dd\nS/iGMaY+Uhc3xvwf8H+ROl9PEstbS7uqqHICJcu2BLwVNVFqD0IpGvPVWd2B72I5noVtMjP/wLZt\nn6Oi4gO/vYSutMXXiqUrKJxX2D5Ndb9x/Tjv4fN0IRvVqVDuMposIluBLcBWEdksIudHv2kq2QW7\nzTaRpqjwDP9kZRV1+3bQQOf0LGyTljYh4HQUkWrLobJD5BXleW3LK8qjsqyyS+9F9RyhJJV/D3zV\nGDPSGDMS+BrWnUcqDKX5W6yFaVS7RAgG/ialW7Pmr9x//9UhJYH9TVh3arGcL3Dw4G5EPkdlZTVp\naTfQ2toScNK6U6+7ioMHryMr6+qwktHr16xnwdwFHK86zjtfe4fD/zoVkHUhGxWKUAKCyxjzlueJ\nMeZfgFa0hGHqFLyWrFSJw9+kdPX1F7Nz54chfTv3N2Gd55wNDdZiOVVVTcAcXK5XcbvB7R7ot5dw\n6nV/o6WlmoaGV0LuJXjyBtlzsrng+Qvo/7n+lC4tpfKfldRsr6F8cTmz584O75ejepxQksr/FJFi\n4DmsuY0+D7wpIucBGGPei2L7VDd1lnwONTmdqnyTw263m+bmKjIyili79pWgY/iBxvs3bXqT1tZy\namsXIjKAtrZKQLAK8n+Jy+UiLS29w6R11uvKqK2tQ+QJamu/Tr9+eWzaNLzT5LJv3mDERSNIT0tn\n+8+3M/a8scy/Y74uZKM61ekCOSLyRpDdxhjzqcg2KbBkLkxLlgVxIs258przjphELUgLZ5GbYMf6\n7svPf4vKyk90et5wru8sSptzyRwmPTOp44I5t27m2Tef7e6vRSW5UBfICeUuo092vzlq6hRgyuio\nFGv51hIcrq7G7XbjSkujsH//9u2xnvgOHNNkj26J6XW7wnfCOM8kdBdddDVPPXVvSBPWTZhwET/+\n8efJySkgJ8e6E8kqWvsNQ4cu8jrW2fuoqzvKI498icOHa8jOXhnwOKeiluntQWHIcGtRHE8PATRv\noMIXyl1Gg0XkaRF51X4+VkRui37TUlekC7Z8J7pbDVRkZlIICTHxna9Eud3UV6BFboqLvxPyhHWP\nPXYH9fUDqK7uG6BoLfDiOTt3HqWhYWCXJsGbPdd7URzNG6iuCCWH8AzWXUWeKpZdwJ+BpwO9QAU2\ndc5oSjbAy+t6RXT202STiMNF/ha5cbvb2LGjmfz8VaxZMw9j3PTv/xQ7dswgN3ev17FtbSeprq4F\nfsvJk1/h2LEJZGRkeRWtpaef4bie9+I5Ig/Q3HwH1dWTSEvL6HBcICUbaM8PeBbFyR+er3kDFbZQ\nAsJAY8xyEbkX2iuMXVFul0pRido7AP/FZp4x/ayszies+8EPZlFbO57MzM/Q2noLI0ZsDVqR7OHp\nmQwbdgUNDXeGNRGeZ9jIExQ0AKjuCCUgNIrI6dirp4nINCAxxh6SWGn+FiiZEJFewuHqanZUV7c/\nb21ro7mtjVZg84cfgn3jQDlQMHOmdVBmJhUvvEDB9ddDa2vHk9r7IymRitFC4cwpeCasg386Jqw7\nNb5fUVHKtm1bSU//DYBda/CJgBXJ/q4BnjqI69iyZS3f+taSkKqUnUEhUkuZqp4plDqEu4FVwFki\n8jawFPh6VFuV4iJdl+B2uxmbnt7+yASyxb6pwBgmijBRxJpONjOTiszMU0GgtbV9m/PhN0h0U1HL\n9KQJBuCdU6ittSasg2uprV3SYXy/uPi7diXyEADS0oYErUj2dw0Ivw7Cw/N7TeQemEp8odxl9J6I\nXAwUAQKUGmMi/2mhusyVlsZk16lRvMOA2xhagCuAQruHkCch3XkWFUXrellr5CURZ06hvv4Ibrf1\nO66vd5Oe/if7GGt8/4MP/guU0NrqnVrzrTUIdg0Irw7Cl/YUVHcFrEMQkSnAAWNMpf18LnAdsB94\nwBhzPGattCVzHYIvT11CUWX3h40m33ZbwBlLDx07Zn3j91HQ2krFX/5CwcyZQfdHSvu0HVOTLCrE\nWDh1CIGEsmiO6llCrUMINmRUDJwEEJHpwENYw0W12CuYqa6L1XQWLW43k0+c6PBocbujfm2nnnxH\nVaj8zavUlYV1kmlYTiWWYAEh3dEL+Dyw2BjzojHmfuDs6DdNRUImsFGkwyP4QIaKh0B1EF2Z8bSo\nZbrmE1TYguUQ0kUkwxjTBlwKzAvxdSrGgs5HVFXF5mDTk2RmUhDgLiMVW/7qIKztwesQgvEEBR0+\nUqEI9sH+HNbEdkeBZuAtABE5G73ttNtOzW00odvnCjYdxeTbbmOin/xCoR1AIn1rqeq6zhbdCZdn\n6CjYUptKOQUMCMaYn4rIP4AhwGvmVPY5Db3tNCIikVD2xzm30YGqKjZXVXU4pjziV+2Zwl2LWalE\nFrQOwRiz3hiz0hjT6Ni2S6e8joBdkZ/kzsM5t1EGMNF+jIb2mgQVGf7WQ1AqWYVSmKYirGRD9HoH\nvtqAyfZjGjDZGCYbgxaSdJ/3egjh3w0UCzpcpMKhyeEYi2TuIBT5WHcZAewwhrGnnQbgP5GswuK5\nKyg7u4iGButuoK4mfyPJGQQ0mazCoQEh1iJUjBZMuSNvUInVKwBoBQ6fOEE6ds/httuCrp0A+J0y\nOx7rKgQSrzH8QGsnhFNZ3B3BvvlrEFBdpQEhRpwrpsViqMiTJ0g3ho32tmbgE8BGYDMwsW9fdlRX\nMzYzk8kul1e1s+c21kAV0InCOYYfy2/nwWoGIt0Ofx/++qGvokEDQgzFKm/QyqlegQvrw9/jJNCE\nPXVtPJSURGz6ikBrGsdCpGsGOhvr1wCgYkEDQgrqlZbGRruwLP/ECSba211AFpCDNUthrF0z9fCp\nOY0iIJ5j+JGoGfANAvqhr+ItLncZicj1IrJdRNwiMjkebYgl53CRioxIzfsTa6W91rU/wAoCnodS\n8RavHsI24HNYE+j1CJEeLnIWn5VXV5NuT1aXlpZGs9tNwYkT7b0AT8TNxUoyb7efb9692/qzrY0D\nEWtZbHRlDD9YAjrayWm980clg7gEBGPMTgDpAQVS0brN1FN8BjC5urp9iGiHy8WNwH+wFr92c6ob\neAVWDuEm+7lztqJWvJPFnruMAs6RFGddGcMPloCOZnJap6NWySLhcwgiMg97Yr17Ft7DjFtnxLlF\n4YtVMtlDsFZMy7QTy2PtwDvYGA5jJZndQJojIOcbw8ann+5wrkQV7hh+sAR0tJLTGghUsolaDkFE\n1ojINj+Pa8M5jzFmsTFmsjFmcjIGA+VHSUnML+kZYsrKKuowpXSwfV2lwUAlo6j1EIwxl0Xr3Co4\ng7WEpsEaIvJMf+3po3huQ53Y8aVRF+k7jULh6QFkZS3j4MHdDBx4E2vX3sQVV9wCmIgWmHU3V7B+\nzXpWLF3BobJDDBk+hNlzZzPtsmnhn0ipLkj4ISPVNWlYQ0dpnPrgL8QKFhPxrk1IdZ4eQHOz0NLi\noqEBsrJO9QQiVWDW3V7B+jXrKV5UTOG8QiYVTaKutI7iRdZ9FxoUVCzEJSCIyCzgCWAQ8DcR2WSM\nuSIebYmmkmWeW00jP2+Rc1Gcck7NTZSWlkYj1hxGHoX2n7lYAeF8oALAsXBOawon+DdtepPW1nJq\naxciMoDa2uP06zeITZus30wkCswiMUS0YukKCucV0m9cPwDrz3nWdg0IKhbidZfRSmBlPK4dawuG\nD4bhkU8od7YojucOpPzdu9unrnAmkvONoXJVZBdkSVQ//emqiCxe35nu5gsOlR1iUtEkr215RXns\nLdvbvRMrFSIdMkpBe6qqKHAsinO+/Wcu8H+OXkHBzJmnXpSZ2WH1NGetg1NEJreL4BQWnYn2RHSR\nmmJ6yPAh1JXWtfcQAOpK68gfnh/kVUpFjq6HkIKygAoRKkRYDbxrP+rt/TlAOlCRmdn+wM902M6F\ndpwPf0EiHLG8BRciu3h9IJG4m2j23NmULy6nZnsN7jY3NdtrKF9czuy5s7t/cqVCoD2EKDmVP4iP\nZkdPwJNArgDOxAoGcZvcLg6isXi9RyQXoPHkCVYsXcHesr3kD89n/h3zNX+gYkYDQhTEckU0f9LT\n0si2K5edt5am272AisxMP69KXZFevN6jtNe6iNcZTLtsmgYAFTcaEKIhhiuiQcexfpfbTfOJE4gI\nvbKyvI51ud3sOHGiwzlcUW+lUirRaUCIsHj0DpzzGgEUVFWRLeI1bOQ01t8tpgGOVUr1HBoQUpEI\nBcbg4tQwEQCZmbSeOMFEPx/+/lZYdtY6+G7v6XTxepWKNCCkoIqzzgKsmUp9J6xz1ih4bffzwR+t\ndZNjPXVFtOg8RSrVaECIIM9U19dMjcwHXlfrAAo+/BDsHkL+jFMTAp4EstPS2FFdTXp6OkXDhkWk\nnV0SoxoEpVToNCBEWFHlhIhVJvvmBjw6XeTeGCocOYRsO2dQYAxD0tIYm57ODld80siPlh2G/MPQ\nq4WilulxaUN36XCRSlUaEFKA71i/C6sOQUQwPvmCvPR0JrtcHHK7GeJnQZxoeblkMKX5W2D06Pah\nlpIN1gdrMgYGHS5SqUgDQgrwHT4qmDmzvQ6h2ecW07X2MJG//EK0+AsGQFIGBu0dqFSmASFCPJXJ\nkcofhMNfHcKOEydIF2F4zFtzSnsgyD/cIRg4TZ1i5V88H7aJGhh00RuV6jQgRNCC4fG5e8Y31zCx\nqoqxIuyIc22Bv15BIKd6C97fwhMhOHR30RulkoUGhATW1TqA3iJMtNdPBtqLzk5yKiEdzZxBe8+A\n8D9AncfHOzhoIFA9jQaEBNbVOoB/B6lDiCbnENHUOaO7fb5gwQGiEyB8r6GBQPUkGhBSwN6qKiY6\n1j/wDBSVYxWieURkHQM/Qs0VdIe/c3qS0b7CCRT+ksQaBFRPpQEhgh4tOxyXPEImsNkxP5HbGNKw\nltF05hY6rV/ogkB3EMWC/yAR/p1AGgCUsmhAiJCpc0ZTsmwXL5cMjsu0184EsgFisUJye5FZHIJB\nIInSDqWSkQaESBo9Gipjf9n0tDTGOtY4aD5xgmwR0qN4l9GjZVbQi0SuQCmVGHQJTRU2DQZKpSbt\nISSJYBPdxdLLJYMjdheRUiqxaECIsNL8LVAS+QVygk50l5lJgWPdAxeAMV51B9D94OFJIGswUCo1\naUCIoKlToITY5xEqXngh6tdw3k2klEpNmkNQnYrnraVKqdiJS0AQkUdE5H0R2SIiK0WkXzzaES2l\n+VtSZlUw5zCRBgOlUlu8egivA+cYYyYAu4B749SOiJs6hZQYVnm5ZDCPlh3WYSKlepC45BCMMa85\nnq4HZsejHdFUmr+F0rLIzYAalwXvdYhIqR5FfFfUinkDRF4G/myMeTbA/nnAPIB7Ft5z/oxbZ/g7\nLCF51kiI17TYXeE1U6neTaRUSpjeb3pIkxdELSCIyBqs6XR83WeM+at9zH3AZOBzJoSGrKtZF9/o\n1QUlG4BduyiqjPytqJGmt5UqlZpCDQhRGzIyxlwWbL+I3ApcDVwaSjBIVp5bUUuJTn1CpDjnJVJK\n9UxxySGIyJXAt4GLjTFN8WhDLDmDQmkZCdVb8ExDofkCpVRccggishs4DThmb1pvjPlKZ69LxiEj\nX54hJIhfbsFzS6zmCpTqGeKeQ4iGVAgIHs7AALEJDr7VxtojUKpn0ICQRJzBoahyQvv2rg4rOYvi\nPL0AD+0NKNXzaEBIQiUbHE8cvQdfnqDh+2HvxZEc1p6AUj1b3O8yUuHz+uCe4v+bfMkGrDuWQBPB\nSqmI0oCQZKZOIWCwUEqp7tDZTpVSSgEaEJRSStk0ICillAI0ICillLJpQFBKKQVoQFBKKWXTgKCU\nUgrQgKCUUsqmAUEppRSgAUEppZRNA4JSSilAA4JSSimbBgSllFKABgSllFI2DQhKKaUADQhKKaVs\nGhCUUkoBGhCUUkrZNCAopZQCNCAopZSyiTEm3m1IWiIyzxizON7tiLWe+r5B33tPfO896X1rD6F7\n5sW7AXHSU9836HvviXrM+9aAoJRSCtCAoJRSyqYBoXt6xLiiHz31fYO+956ox7xvTSorpZQCtIeg\nlFLKpgFBKaUUoAGhW0TkERF5X0S2iMhKEekX7zbFiohcLyLbRcQtIpPj3Z5oE5ErRaRURHaLyHfj\n3Z5YEpHfi8gREdkW77bEkogME5E3RGSH/W/9f+LdpmjTgNA9rwPnGGMmALuAe+PcnljaBnwOWBfv\nhkSbiKQDTwKfAcYCXxCRsfFtVUw9A1wZ70bEQRtwjzFmLDAN+Fqq/71rQOgGY8xrxpg2++l6oDCe\n7YklY8xOY0xpvNsRI1OB3caYPcaYk8DzwLVxblPMGGPWAcfj3Y5YM8YcMsa8Z/9cD+wECuLbqujS\ngBA5XwZejXcjVFQUAAccz8tJ8Q8G5U1ERgLnAv+Jb0uiKyPeDUh0IrIGyPez6z5jzF/tY+7D6l4u\ni2Xboi2U965UqhORPsCLwDeNMXXxbk80aUDohDHmsmD7ReRW4GrgUpNiRR2dvfcepAIY5nheaG9T\nKU5EMrGCwTJjzEvxbk+06ZBRN4jIlcC3gRnGmKZ4t0dFzQZglIh8RESygBuBVXFuk4oyERHgaWCn\nMebxeLcnFjQgdM+vgVzgdRHZJCK/jXeDYkVEZolIOXAh8DcRWR3vNkWLfePAncBqrMTicmPM9vi2\nKnZE5DngHaBIRMpF5LZ4tylGPgbcDHzK/v+9SUQ+G+9GRZNOXaGUUgrQHoJSSimbBgSllFKABgSl\nlFI2DQhKKaUADQhKKaVsGhBUShERl3174DYReUFEcjo5/nshnnefiAwMdXukiMhM54RqIvJmT5hd\nVsWHBgSVapqNMZOMMecAJ4GvdHJ8SAEhjmZizbCqVNRpQFCp7C3gbAAR+aKIlNi9h2IRSReRh4Bs\ne9sy+7i/iMi79vz387pyURHpba8hUCIi/xWRa+3tt4rISyLydxH5QEQedrzmNhHZZb/mdyLyaxG5\nCJgBPGK38Sz78Ovt43aJyCe68ftRyovOZaRSkohkYK1f8HcR+SjweeBjxphWEfkNMMcY810RudMY\nM8nx0i8bY46LSDawQUReNMYcC/Py9wFrjTFfthdNKrEnCgSYhDVr5gmgVESeAFzA/cB5QD2wFths\njPm3iKwCXjHGrLDfF0CGMWaqXTX7Q0DnnFIRoQFBpZpsEdlk//wW1lw084DzsT7gAbKBIwFe/w0R\nmWX/PAwYBYQbED4NzBCRBfbzXsBw++d/GGNqAURkBzACGAj80xhz3N7+AjA6yPk9k6y9C4wMs21K\nBaQBQaWaZp9v/J5JypYYY4KuaCcil2B9277QGNMkIm9ifZiHS4DrfBcQEpELsHoGHi669n/Qc46u\nvl4pvzSHoHqCfwCzReQMABEZICIj7H2t9hTHAH2BajsYjMFaNrErVgNftwMRInJuJ8dvAC4Wkf72\nUNd1jn31WBMoKhV1GhBUyjPG7AC+D7wmIluw1sIeYu9eDGyxk8p/BzJEZCfwENayqKHYYs8CWi4i\njwM/ATLt7dvt58HaVwH8DCgB3gb2AbX27ueBb9nJ6bP8n0GpyNDZTpVKACLSxxjTYPcQVgK/N8as\njHe7VM+iPQSlEsMDdjJ8G7AX+Euc26N6IO0hKKWUArSHoJRSyqYBQSmlFKABQSmllE0DglJKKUAD\ngr5eym4AAAAKSURBVFJKKdv/B8+UXDFcYaWeAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1185bf8d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svc = SVC(gamma=10, C = 1, kernel=\"rbf\", random_state=345)\n",
    "svc.fit(X_train, y_train)\n",
    "print(\"accuracy\", svc.score(X_test, y_test))\n",
    "plot_decision_regions(X_std, y, svc)\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")\n",
    "plt.legend(loc = \"upper left\")\n",
    "plt.title(\"SVM classifier using gamma = 10, C = 1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy 1.0\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x1197c9908>"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1185839b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svc = SVC(gamma=1, C = 10, kernel=\"rbf\", random_state=345)\n",
    "svc.fit(X_train, y_train)\n",
    "print(\"accuracy\", svc.score(X_test, y_test))\n",
    "plot_decision_regions(X_std, y, svc)\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")\n",
    "plt.legend(loc = \"upper left\")\n",
    "plt.title(\"SVM classifier using gamma = 1, C = 10\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Above we see the impact of different gamma and C values. Higher the gamma value or C values, each observation seems to loose territory of influence and hence tend to create a more overfit model. But we see the accuracy score is already matched with some of the best we have got so far. Let retrain the model using all features and tune the model using parameter grid."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy 0.977777777778\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x11996b2e8>"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEWCAYAAABmE+CbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8lNX1+PHPmSySQMIOgYTFBaKgQtlcapW627pvValo\nq18Qq/1WS1ttf35r99alfPutlYbWVqiKRZSKtooiUqsVFSjIZgBZEwiGkBUCJDPn98fzTJhMJpNJ\nMpOZTM779ZoXzDzPPM+doDlz77nnXlFVjDHGGE+8G2CMMSYxWEAwxhgDWEAwxhjjsoBgjDEGsIBg\njDHGZQHBGGMMYAHBxIiIPCwiz8Tw+htEZLL7dxGRP4tIuYh8KCJfEJHCWN07UiLyexF5KN7tMCZS\nFhCShIicIyL/FpFKETkgIu+JyEQROVNEDopIjxDv+Y+I3CMiw0VEReQ/Qcf7ichREdnRYR8kQqo6\nWlWXu0/PAS4C8lR1kqr+S1Xz49c6h6repao/iXc7ko2IpIvIQhHZ4f53OznebUoWFhCSgIhkA68C\nvwX6ALnAj4AjqroCKAKuD3rPqcAoYH7Ay5nu6363ANtj2PRoGQbsUNWD7b2QiKRGoT0m9t4FvgqU\nxLshycQCQnIYCaCq81XVq6q1qvqGqn7sHp8LTA16z1TgH6paFvDaX4Dbgs6ZF+7GIjJaRN50eyX7\nROT7zZz3goiUuD2Yd0RkdMCxL4nIRhGpFpFiEZnpvt5PRF4VkQr3+v8SEY97bIeIXCgidwB/BM4S\nkRoR+ZGITBaRooDrDxaRF0WkVES2i8g3A4497H7bfEZEqoDbQ7R9uYjcGfD8dhF51/27iMgsEflM\nRKpEZJ0/qIrI0yLyU/fvk0WkSES+7Z67V0S+FnDNviLyinuNj0Tkp/57NPPznCoiO0WkTEQe8v88\n3GOTROR99+e2V0SeEJH0gPeqiNwtIlvcn/lPROREt4dZJSIL/OcHtPu7Ae2+2v032+z+u3w/4Nph\n7x0NqnpUVf9XVd8FvNG8dldnASE5bAa8IjJXRC4Tkd5Bx/8CnCsiQwDcX6q34ASKQM8AN4lIioiM\nAnoAHzR3UxHJApYCrwODgZOAt5o5/TVgBDAAWA08G3DsKWC6qmYBpwLL3Ne/jdO76Q8MBL4PNFpr\nRVWfAu4C3lfVHqr6w6A2eoBXgLU4PacLgG+JyCUBp10FLAR6BbUrEhcD5+IE5Z7AjUBZM+fmuOfk\nAncAvwv4t/odcNA95zYaB+ZG3H+bJ4EpwKCAa/p5gfuAfsBZOJ/57qDLXAKMB84EvgvMwfnGPQTn\n3+DmoHZ3c+/xP8Af3HPHA18AHhKR41tx78DPUhHm8UBz7zOxYQEhCahqFc44uuL8z1oqIotFZKB7\nfDewHLjVfcsFwHHA34MuVQQUAhfi9A7+0sKtLwdKVPVxVT2sqtWqGjKAqOqf3ONHgIeBMSLS0z1c\nB4wSkWxVLVfV1QGvDwKGqWqdmxto7eJbE4H+qvpj95vlNpyf0U0B57yvqn9TVZ+q1rby+nVAFnAy\nIKq6SVX3hjn3x+5n+QdQA+SLSApwHfBDVT2kqhtpGqwDXQ+8oqrvqupRnF/SDT8XVV2lqitUtV5V\ndwAFwHlB13hEVatUdQOwHnhDVbepaiVO8P5cULt/pqp1wPM4v+x/4/57bgA2AmNace8GqtorzOOX\nYX4GJgYsICQJ9xfR7aqah/MNbzDwvwGnzOVYQLgVeN79HzzYPJxhk5tpOSAMAT5tqW1uj+OXIvKp\nOyyzwz3Uz/3zOuBLwE4R+aeInOW+/iiwFXhDRLa18RvjMGBw4DdPnJ7GwIBzdrfhugCo6jLgCZxv\n+J+JyBxxcjqhlKlqfcDzQzi9sP5AalA7wrVpcOBxVT1EQK9EREaKM9RW4v68f86xn7XfvoC/14Z4\nHjgJoUxVvQHHQr2/RyvubRKUBYQkpKqfAE/jBAa/l4A8EfkicC3NfwN9EfgysE1Vd7Vwq93ACRE0\n6RacYZkLcYY3hruvi9vej1T1KpzhpL8BC9zXq1X126p6AnAlcL+IXBDB/YLbuD3om2eWqn4p4JyW\neh0HgcyA5zmBB1X1/1R1PE6SfiTwnVa2sRSoB/ICXhsS5vy9geeKSAbQN+D4bOATYISqZuMEQGll\nm9qqVfcWJ+/T3CNkPsrEjgWEJCAiJ7vJyjz3+RCcb/gr/Oe4M3AWAn8GdqrqylDXcs87H7gz1PEg\nrwKDRORbInKciGSJyBkhzssCjuB8i83E+dbob3u6iEwRkZ5uj6UK8LnHLheRk0REgEqc8WlfBO0K\n9CFQLSLfE5EMt7dyqohMbMU11gDXikimiJyEM/7vb/9EETlDRNJwAsfh1rbR/fb9EvCwe4+TaToJ\nINBC4AoROdtN2D5M41+6WTg/xxr3WjNa0552atW93bxPc4+fN/c+97+3bu7TdBHp5v53YtrBAkJy\nqAbOAD4QkYM4gWA9TlI20FycIZSwM4dUdaWqtjgUpKrVOPP/r8CZ/rcF+GKIU+cBO4FinPHmFUHH\nbwV2uEMMd+EkS8FJQi/FGWt/H3hSVd9uqV1BbfTi5DrG4kyh3Y8zK6lnuPcFmQUcxRkmmUvjxHM2\nTk6iHOczluEMdbXWPW6bSnCG6ubjBNEm3HH7e3HG8/fi/Hw+Czh/Jk6vrNpt21/b0J626qh7F+IM\nVeUCS9y/D4vRvboMsQ1yjEk8IvIrIEdVm51tFHBuD6ACZ5imM9SNmARlPQRjEoA77He6OCbhDEst\nCnP+Fe7wUnfgMWAdx5L1xrSJBQRjEkMWTh7hIM4wy+PAy2HOvwrY4z5GADe1YUquMY3YkJExxhjA\negjGGGNcnWshr1dese5MEnjlw4EwaVK8m2HaoLDbO0xqzYRdkxDO7XVuRFNyrYdgjDEGsIBgjDHG\nZQHBGGMMYAHBGBOhwm7vxLsJJsY6V1I5hDqPh6K+fTmclhbvpjSrW10deWVlpPlauwyPMYnBksld\nQ6cPCEV9+5I1aBDDs7NJxLWtVJWyqiqKgONLS+PdHGOMaVanHzI6nJZG3wQNBgAiQt/s7ITuwRhj\nDCRBQAASNhj4JXr7jDEGkiQgGGOMaT8LCFHy+tKl5E+cyEnjxvHLWbPi3RxjosZmF3UdFhCiwOv1\n8o3vfIfXXniBjStWMP/FF9n4ySfxbpYxUWMzjLqGTj/LqDXOP/98qkLM9Mnu359ly5a1+bofrlrF\nSSecwAnDhwNw07XX8vI//sGok09u8zWNMaajdamAUFVaysp+/Zq8PqGd00GL9+5lSG5uw/O8wYP5\nYNWqdl3TGGM6WtyGjNxNsT8UkbUiskFEfhSvthhjjIlvD+EIcL6q1ohIGvCuiLymqsEbsCe83EGD\n2F1c3PC8aM8ecgcNimOLjIkOq1DuWuLWQ1BHjfs0zX10yv0OJo4bx5ZPP2X7zp0cPXqU5196iSsv\nuyzezTLGmFaJ6ywjEUkRkTXAZ8CbqvpBiHOmichKEVk55/XXO76REUhNTeWJRx7hkuuu45QzzuDG\nq69m9CmnxLtZxhjTKnFNKquqFxgrIr2ARSJyqqquDzpnDjAHaPeOadn9+4dMIGf379+eywLwpYsv\n5ksXX9zu6xhjTLwkxCwjVa0QkbeBS4H1LZ3fVu2ZWmqMMckunrOM+rs9A0QkA7gIsGouYxKEVSh3\nPfHsIQwC5opICk5gWqCqr8axPcaYIDbDqGuJW0BQ1Y+Bz8Xr/sYYYxqztYyMMcYAFhCMMca4LCBE\nwdfvuYcBI0Zw6llnxbspxkSFJZS7JgsIUXD7zTfz+sKF8W6GMVHhDwaWUO56umRA2F9WxpdvnErZ\ngQNRud65n/88fXr3jsq1jEkEFgy6pi4ZEP4w93k+WFXNnKfnx7spxhiTMLpcQNhfVsbc+W+QM+AJ\n5s5/I2q9BGOM6ey6XED4w9znqau/nG7d8qmrv9x6CcYY4+pSAcHfO8jqcSsAWT1utV6CMQESbXbR\niqUrmDl1JlMmT2Hm1JmsWNrptkvpVLpUQPD3DlJTnW00U1P7RaWXcPMdd3DWxRdTuHUreaNH89Rf\n/hKN5hoTF4mSUF6xdAUFswvImJLB2KfHkjElg4LZBRYUYighVjvtKG8uf4/6+hJK988Pej2HB+//\nRpuvO/+pp9rbNGNMkIXzFpI3LY9eo3sBOH9Oc14/88Iz49y65NSlAsKyxc/FuwnGmAjt3bWXsflj\nG72WnZ/N9l3b49Si5NelhoyMMZ3HoKGDqCqsavRaVWEVOUNz4tSi5GcBwRgDJF5C+fqp11M0p4iK\nDRX46n1UbKigaE4R10+9Pt5NS1pdasjIGBNeoiSUgYY8wcJ5C9m+azs5Q3OYPmO65Q9iyAKCMSZh\nnXnhmRYAOpANGRljjAGshxAVu4uKmDpjBvtKSxERpt12G/99113xbpYxCWnF0hUsnLeQvbv2Mmjo\nIK6fen1UegFzH5vLoucXcaj6EJlZmVxz0zXcNvO2mN4z2VhAiILU1FQe/+lPGTdmDNXV1Yz/4he5\naPJkRp18crybZkxC8Reb5U3LY2z+WKoKqyiYXQDQrl/Qcx+by4K/LWDIg0PIOi2L6nXVLJi1AID8\nsfkxuWcy6nJDRq8tXcrFU69lxOTxXDz1Wl5burTd1xyUk8O4MWMAyMrK4pSRIyneu7fd1zWmo3TU\nDKPAYjNPqodeo3uRNy2PhfPat5/IoucXMeS+IWSPy0bShOxx2Qy5bwiLnl8Us3smoy4VEF5bupSZ\nsx8iZUoaE5+eQMqUNGbOfigqQcFvx65d/Ofjjzlj/PioXdOYWJs0sWNmGO3dtZfs/OxGr2XnZ1Oy\nq6Rd1z1UfYis07IavZZ1WhaHqg/F7J7JqEsFhFnznmTotKH0Hd0HT6qHvqP7MHTaUGbNezIq16+p\nqeG6qVP531/8guzs7JbfYEwXE81is8CF78QjVH5c2eh49bpqMrMyrcCtFbpUQNi+aye983s1eq13\nfi927NrZ7mvX1dVx3W23MeWGG7j2iivafT1jklG0is2CF74beN5Adj++m4pVFWidUrW6it2zdnPN\nTddYgVsrdKmk8vFDh1FeWEHf0X0aXisvrGD40GHtuq6qcse993LKyJHc/422L5JnTDwUdnuHSR10\nr2gVmwUvfDfm/41h7U/XsvOhnahPyczK5MabbmyYZRSNe3YFXSog3Df1bmbOfgimOT2D8sIKds3Z\nxWMzftKu6763YgV/+etfOW3UKMZ+4QsA/Pyhh/jSxRdHo9nGxEw8lquIRrFZqIXvTnvgNHyf+Hhm\n+TMxuWdXELeAICJDgHnAQECBOar6m1je87ILLwScXMLKXSsZPnQYj834ScPrbXXOWWeh5eXRaKIx\nHS6RlquIlD8v4O8hgOUFoiGePYR64NuqulpEsoBVIvKmqm6M5U0vu/DCdgcAY0x8XT/1eqeWYJoz\nY6iqsIqiOUVMnzE93k3r1OIWEFR1L7DX/Xu1iGwCcoGYBgRjTOdnC9/FRkLkEERkOPA54IMQx6YB\n0wAK7r6baZde2uT9qoqIxLaR7aCq8W6CMUnH8gLRF/eAICI9gBeBb6lqVfBxVZ0DzAHglVea/Gbt\nVldHWVUVfbOzEzIoqCplVVV0q6uLd1OMaSRe+x/YukKJK64BQUTScILBs6r6UluukVdWRhFQun9/\nVNsWTd3q6sgrK4t3M4xpoqMTyrFay8hERzxnGQnwFLBJVX/d1uuk+XwcX1oavYYZY2ImuH6g1+he\nMM153QJC/MWzUvnzwK3A+SKyxn18KY7tMcbEmK0rlNjiOcvoXSDxBv2NMTETSf2A5Rjip0utZWSM\nia+W1hUKXqMoY0oGBbMLWLF0RZxb3jXEfZaRMabjFXZ7Jy4Vyi3VD1iOIb4sIBhjOlS4+oFQaxRl\n52ezfdf2jmhal2cBwRgTFeHG/gOPZfbIRL1KbW1tk/NsjaL4soBgjGm3cPUFQMOxEYNHsPvD3ex/\ncT8j/2sk3fp1a1SHYGsUxZcFBGNMu4Ub+wcajhXtKKLXWb04Luc4ds7byRmPn9EoR2BrFMWXBQRj\nuphYLFkRbuxf0YZjdUfryOyWSfeR3dldvLvReX62RlH8WEAwpguJ1eyilsb+/cfS0tPwHvZSu72W\njNyMJueZ+LI6BGNMuwXXF+z9cC9rf7qW7Ru2U1FawdbfbKViQwU9e/ak4v0Kin9XzLArh9n+xgnG\negjGmHYLHPvfVLiJ2qO1DL95OMNvHE5VYRWbf7mZkt+WUFtTS0aPDPprf/b+Ya/lCBKMBQRjTFT4\nx/5nTp1JxpSMRgnmkQ+MpPbZWv7w6h/i3EoTjg0ZGWOiyhaw67wsIBjTyVRV7edHP7qOqqrW7bHR\nURvi+BPMgSxx3DlYQDCmk1myZB6bN5ezZMncVr+3I9YvamkBO5O4LIdgTCdSVbWfZctepXfv2Sxb\nNoNLLrmN7Oy+8W5WI1Zc1nlZQDCmE1myZB5e7+VkZORTU3M5S5bM5YYb7o93s5qw4rLOyQKCMZ2E\nv3eQkbEAgIyMqSxbdmOjXkJV1X5mzZrOfffNadRzeHn9I7y7ZCG/qWh505lIN6ixjWySj+UQjOkk\n/L2DlJR+AKSk9MPrvbxRLiFUfmHV6td4/e8FDJzR8qYzkW5QYxvZJCcLCMZ0EmvWLMfrfY7KygkN\nD6/3OdasWQ4E5xdebZiFtPitWeT+l7O4nCfVQ6/Rvcibltew8FygwEXqwp0b6Xmmc7EhI2M6iZ/9\nbHHY483lF/Z9tp2TR5zc6NzmNp2JdIMa28gmOVkPwZhOzF+TUFy82c0vTAX8+QWnlzBwwPHUbIms\nLiC4huBg9UG2vL2FA/sPMHPqzIYhoZZqDVYsXcHMqTOZMnlKo/eZxJby8MMPx7sNkdu8+eF4N8G0\n3+biHpCbG+9mJIXFi3/Pe+99zLZt/6K6+iK6dbsAAI8nkyNHylBdy5njr+CfLzxP5vHppPdJp3JT\nJUVziph651TyTshrdL3srGzeLnib9KHp1KXVsWvFLkoXlnLK3aeQcWYGbxe8TU7fHEaNGdVwXvA1\ni7YVUTC7gL5f68uwO4fhG+xreF/w/UzHGNZt2I8iOa/FISMROQ64DhgeeL6q/ritjTPGtF9gzmDj\nxivJytpOZeVzjc5Zs2Ywp986gUvTp/Pxsy3XBQTWEGxYtYGM4RnkT81n4DkDnRPczWwem/dYw3nB\n15w5dWazm+XYLKTEFkkO4WWgElgFHIltc4wxkQrMGfTpM52LLiJkTUIh7zB1xpkwI7Jfxv4agimT\npzD2d2PxpB4bWQ7MEzRXa2D5hc4rkoCQp6qXxrwlxnRhzdUPNHfuo49+jX37KsjIWASEr0m44sHb\ngZ4N74+0fiDUpjc7FuygpqaGKZOnoPVKVXUVRw8fJTMrk4kTJ1J+sJzy/eVseXsLeWfm0T2ru9MW\nW8uoU4gkqfxvETktFjcXkT+JyGcisj4W1zems2jN+kRLlsxj06b91NT0i6gmYcXf32h4rTX1A8Fr\nEm17bhs7Fu/gpO+fRJ9b+1CVWUX/e/szav4oBjwwgHfXvMtnmZ8x+sHR7HthHzv/vZPq8mpby6gT\naTYgiMg6EfkYOAdYLSKFIvJxwOvR8DRgvQ/TpTVXPxDuXJGHqa1dS3n52BZrEla9+RGVByqB1tUP\nnHnhmUyfMZ3aZ2tZe/taihcUc8r9pzBo0iB2vbyLwfcMJvusbOpq6uh+anfyvp3HZx9+Rs55OeRP\nzaf8pXI+uOkDap+ttbWMOolwQ0aXx/rmqvqOiAyP9X2MSWStWZ/If+6QIZdQU3NPs3kD/3mSORhv\nzRW88vQbfPX+G1o9vh+YJ5gyeQoDxznJ5SP7jtD95O6QAr46Hz710f207tQfrAdg4DkD6X9mf9be\nvrYhAW0SX7M9BFXdqao7gZ/6/x74Wkc1UESmichKEVk55/XXO+q2xnQI/zf59PQvs2fPdaSnX96k\nlxBJrUGoa0rmtQD07juF1+c7vYT27FUQ+N7jBh7HwU8O4jvsw5PmwSMeDq47SGr3Y98xLW/Q+USS\nQxgd+EREUoDxsWlOU6o6R1UnqOqEaZfa6JJJLv5v8jU1f+fw4XJqal5tNhdQUPC9FtcyCrxmSkpf\nuneH1NS+eOudXkJ79ioIfO/Qq4ay54k9VL1fRVqPNA6uP0jR40UMmDTA9kDoxJodMhKRB4HvAxki\n4v9KIcBRYE4HtM2YpLdmzXLq6nZRWVmFyG+prLyXXr2yWbNmKDfccH9QrcGFZGXtDFlrEDhs5Kx5\ntIfDlX+irvbYeSuX9+Gr998AtG2vgsAahfJd5WTXZ1P621KKDxeTmZXJORPPofxgOWtvX2t7IHRS\noqrhTxD5hao+GLMGODmEV1X11BZPfuWV8I01ncIrHw6ESZPi3YyE8cILv+bNN6FHj/upqfl1o7xA\nuGMtKez2TofskGYS37m9zpVIzoukDuEFERkX9FolsFNV61vdsgAiMh+YDPQTkSLgh6r6VHuuaUxn\nEm6PA1A3v/Ase/ZspV+/W1i27JY27ZIWWHuQkZGBpAiHag5FbW+E1p5rElMkAeFJYBzwMc6Q0WnA\neqCniMxQ1TfCvTkcVb25re81Jhm0tMeB13s5tbXC4cNeamogPT2yXdIKu73T8Hd/7UHetDwG7x/M\n5mc30++afoyYNALvHi8FswsAmvzyDnzf2PyxVBVWReVck7giSSrvAT7nJnbHA2OBbcBFwCOxbJwx\nyS7cHgdOfuEZKisnInIjlZUTqat7pqHWoCX+4aLA2oOdi3eS+41cep3Vi8rKyqjsjdDac03iiqSH\nMFJVN/ifqOpGETlZVbeJRDQsZYxpRkt7HLQnh+AXWHtQW1xL95HdkRThyFFnabL27o3Q2nNN4oqk\nh7BBRGaLyHnu40lgo7sKal2M22dMl3UsvxC+7qAlgfUDGbkZHNx8EO9hL2npac59ItwbIVrnmsQV\nSUC4HdgKfMt9bHNfqwO+GKuGGZPM/MVmoX65+4+9/PLsiOoOWhJYPzDsymEU/66Yivcr6NmzJxUb\nKtj06CY2rdzExfkXc/WEq5n72NyG923+5Wbem/4eb9/0Nu9Nf4/V963mk7WfhDy3rfUNJnG0OGSk\nqrXA4+4jWE3UW2RMFxC4mF3wEJD/WHHxi3i9qS3WHQQLTChD4/qBkl0l9M/ojywStv5lK4pSXVHN\n8T85nqzTsqheV82CWc6Mp/yx+XgyPPS7vh9peWnUbqtlz9N76HdpPwbdPKjRubfNvK3hHq2tbzCJ\nI5I6hM8DDwPDaLxBzgkxbVkoVoeQFLp6HUJV1X6+970bSUmZjdc7g1/96oVGS1Y3dyxSrak/uHrC\n1eQ8mEP2uOxj7VtdRckvSjhp1ElkTMloWP76002fUldZR+lfSxn5yMhG5/5t5d9a1UbTsSKtQ4hk\nyOgp4Nc4q55ODHgYY9rAP9U0PT0/5DIVzR2LhUPVh8g6LavRa1mnZXGo+hB7d+0lO/9YoPB5nQXs\nju492uRckxwimWVUqaqvxbwlxnQBzRWinX325fz+999ucdMb/zVCbaazavVrvLTkEbZuW8ngIQNJ\nOS6lofjstNNPY93H65oUjWVmZVK9rrpRD6F6XTWZWZlNNsjxpHio+qiK+oP1rPvqOtIHpdPj1B5k\nZmW2+LmtaK1ziKSH8LaIPCoiZ4nIOP8j5i0zJgk1V4hWUPC9iDa98V8jeDOdVatfY+4bM5GvHKLv\n1BxKPaX4rvEx4rcj4GpY8LcF1J5a22RTnGtuuobds3ZTtboKrVOqVlexe9ZurrnpmiaJ4vpd9ex5\nYg99r+rLyKdG0v8r/Sl7vYzhecPDfubWbMpj4iuSHsIZ7p8TAl5T4PzoN8eY5OZfeC4wUezz1bNx\nYy0i/0dt7QzKy8fi8aQGvOdYErnxZjozGnoPi9+axeCv51KVdYDqF2rImTaIrJN7UFleCQNgyH1D\nKF1Qygm3nNBo03v/XgWLfrGIbdXbyMzK5MabbmxIEsOxRHHpvlJ6X9Wbnp/vyeEdh0ntlUrujFx2\n/HZH2M8cWLQGNLq/9RISSySzjGxqqTFREqoQ7VjxWfhNb6D5zXT2fbadYQOHogd7Ule6lYwReZAK\ndUed8f6s07IonlXccJ3AorHbZt7WKAAECtwg5+L8ixny9SFI2rH8pA5Tdv98d9jPbEVrnUeLQ0Yi\nMlBEnhKR19zno0Tkjtg3zZjkFW7Tm6VLX+ahhy5vduMb/7lKLi8u+QXTv30iB2sr2PHiVsTTl7QB\n3Tm89Qh1h+pITUslLT2N6nXVZORmHLtWmKKxFUtXMHPqTKZMnsLMqTMbhnb8+YZA/nxDOFa01nlE\nkkN4GlgCDHafb8YpUDPGtFG4TW+qq89j06ZPw2x804+Dh17jUM8fM+i/T2D4r4eT+81cKt4vo+y1\nrfQ590T2zC6i+sMaUkkj5bMUds/aTf/x/VssGgs33h8u3xCOFa11HpHUIXykqhNF5D+q+jn3tTWq\nOjbsG2PB6hCSgtUhHKs1KCm5kqysjIacgc/no6KilNTUfPr18zWqQ/jBD66kpGQPADV8yuD/HkjG\nid1JTXOWoKj85ABFv9mF+DzgFSRVSEmF0RNHNcwyKtlVQs7QnGZn+cycOrNR7QFAxYYKap+t5bF5\njzH3sbksen4Rh6oPkZmVyTU3XdPscFMg/yyjlu5vYiOa+yEcFJG+OIlkRORMnP0QjDFtEJgH6NNn\netgNcQIrmQPzD3d9ZwQjzxuHJ/VYJ7/PoEpqnjnMwvefaXPbWhrvD5dvCCcwF2ESVyRDRvcDi4ET\nReQ9YB5wb0xbZUwnFW6NIv/x5hasa+5YcfHmRtcsLi6kbH8JBzbta7juEU81RS/toL6upsnYf2u0\nNN7fXH7BJIcWA4KqrgbOA84GpgOjgYywbzKmiwpVIxB8vLkF68LVKARes6DgAY6U5bBp1loqNpXh\nq/exa8E29ry+g5O+f1K75vqHG++3eoLkF8mQEe5WmQ17IojIC8DQWDXKmM6ouRqBQKHqEJzXnTkb\nzdUo5OQsZtmyGZx++tmsX7+OtLSXqNl8KeW/r2Z75adUH97PKf9zCoMmDQLaPtc/cCG84EXqZk6d\nafUESS5Yu20uAAAZ0klEQVSigBCC7YxjTJDmagQCtbQhTjB/TiE93bnm44/PwOe7hbS00/F67yT9\n6Dp+/+i73PHdIQwcN7DRe9s617+58X6rJ0h+keQQQrHZPsYE8PcO0tNvZs+eraSn39KmzWzAyRF8\n9avHU1j4QaOcQkrKjZSUlOPxfAUA8eSzfsdS/uu+4RyuPciOBTsarnGw+iBb3t7Cgf0HGsb6K8oq\n+O6NP6TyQNvmhFg9QfJrtocgIq8Q+he/AK1bj9eYJOfvHdTWCocPe6mpgfT00L2ElhQUPEBVVR8e\nf/wu4NaGnMKBA4eBKaguwefbRfqwnzNgaj49TwHKBrDtiU0A9L+sP7s/3M3+F/cz+sHRdOvXjYLZ\nBYzMGc2mVfW88vQbfPX+G1r9Ga+fej0FswtgmtMzqCqsomhOEdNnTG/1tUxiCjdk9FgbjxnT5axZ\ns5y6uiIqK2ch0ofKygP06tWfNWvyWhUQiosLG3IEJSUX0KfP3IacwuHDxYDi9dYhWYcZMHUQGSek\nUFcHI845nuPSYevPt7Jt7jYyhmeQPzWfgec4w0jeO7z8a+a7DBiwlNfn380Vt19Mzz49W/UZw+UX\nTHJoNiCo6j87siHGdGY/+9niJjUE4dYkak5BwQMNOQKPZwZDh67jxz9e1OS8u74zglHnT8ST6uGI\nx1lOYuC4gZT0KKF7j+6M/d3YRjUK9BPq61JJ7zaCIxVXtLmXYPUEya2tOQRjTIBw9QWB54SrUfD3\nDlJSZgCQkjKD9evXUVy8pcm5AwccT9WWcnzeekqL9+D1ehvG84PH+r1eL9ue34F6fOza8zmq6paw\n6Kk32pxLMMnLAoIxURCuviDwnHA1Cv7egcfjTB31eAbh891CQcF3m5x75QX3UfzHXRSv3M6Rg0rR\ne8UN9QLBtQQb/7CJin+XM+S+fEY8MZ5B38ygtkcNTz70hxj8JExn1tZpp8aYAOHqC2644f6IahS2\nbPkP8CF1dU8FvZ7W5H7jx13GoUNV/O7n91DvyyQtrZqZP/tmo+Ec/1j/ZyWl5N6bR8YJh/DpZo4b\nDjm392BFwb+j9vlNcmjLLCMAVPXK9t5cRC4FfgOkAH9U1V+295rGxENL9QWR1CjMn7+jVfcs2VtM\nt5Rv0X/wN6mu+D/2bC9pOBY41j9l8hRGffnkRjkF30gfa/+6tlX3M8mvrbOM2k1EUoDfARcBRcBH\nIrJYVTfG8r7J4vz776eqsukYcHbPniz79a/j0KKuKXh/48DnoMyaNZ077/xFyH2UQ/USWnPfZcte\n5biMPznX7DGF1+ffFHL20KChg9j2z21ojqKqiAhSIlY/YJpoNoegqv8M94jCvScBW1V1m6oeBZ4H\nrorCdbuEqspKVvbs2eQRKkiY2AnOCwQ+D7fnQai9klt7X+eaTkBJTe2Lt96ZPRSsvqqe7bO3U19V\nT7fh3Ro9NyZQJDumjRCRhSKyUUS2+R9RuHcuELj3XpH7WvD9p4nIShFZOef116NwW2Oio3Fe4NWG\n3c96957N0qUv8+abi+jdezYbN26krm4elZUTGh5e73OsWbO8zfd2chbPUVN5FhX7nYe3fj4rlzcd\nBtpUuIk+l/ahdEEpm+/cTOmCUvpc2odNhZva8elNMookqfxn4IfALOCLwNfowNlJqjoHmAPYBjkm\noQTnBfw9gYyMfA4cOA9YR05O0z0PosGfsyjs9g6TJoY/t76ungE3D8CTFpBDqPOx75l9Yd5luqJI\nfrFnqOpbOLur7VTVh4EvR+HexcCQgOd57mvGJLzguoP09C+zfv060tNvweut4/DhL3H48AG83rKQ\nNQnRUNjtnYjOS01L5eC6g41eO7juIKlpNsnQNBbJfxFHRMQDbBGRe3B+afeIwr0/AkaIyPHuNW8C\nbonCdU2AlpLPlpx2BCeHWxJcd1BT83d8vluoqQEoA4ajegFFRReRl/cmXu/lLFjwCMuXL+BXv3qD\n3NwRUWlLc70D/5aVe3ftpftx3dn9+G6GfHsI3U/rzsF1Byl6vIhzJ5/b4uc0XUskAeG/gUzgm8BP\ngPOB1u+hF0RV690AswRn2umfVHVDC28zruyePZnQzC/yQP7kczD/e1s63lUEJoMjGdoJrjuori4G\nPFRXPw2Az+fF5zuK15vLvn0T6d69D2+9tZ+DB/tSUPDdkMtRtLUtwfwb2eRNy2Ns/liqCqtY/d3V\n7Px/O/HWe0lNS+Xcyefyg9k/aPW1TXJrMSCo6kcAbi/hm6paHa2bq+o/gH9E63pdSVf69h5rkRSN\nBWup7qCqaj/f+96NpKTMxuudwbe+9XMefPCrpKX9mfXrr6W4eEvIXkJb2hJs4byFTTayGffIOGqf\nreWxebYupWleJLOMJojIOuBjYJ2IrBWR8bFvmjEdwz/8k56e3+7poM1d07+xjcdzerPLUUSrLXt3\n7SU7P7vRa9n52ZTsKmnmHcY4Ikkq/wm4W1WHq+pw4Bs4M4+M6fRCLUq3dOnLPPTQ5RElgUMtWBe8\nWY7Ite7GNjdSV3e42UXrjr3vy+zZcx3p6Zc3m4wOlVBesXQFM6fO5EDpAd7/xvvse/fYLCLbyMZE\nIpKA4FXVf/mfqOq7gFW0mKQQalG66urz2LTp04i+nYdasM5/zZoaZ7Oc0tJDwBS83tfw+cDn6xey\nl3DsfX/n8OFyampeDdlL8AeDwISyP2+QMSWDM54/g97X9qZwXiEl/yyhYkNFw8J3xoQTSVL5nyJS\nAMzHWdvoK8ByERkHoKqrY9g+004tJZ8jTU4nq+DksM/no7a2lNTUfJYtezXsGH5z4/3Bm+XU15cA\nglOQ/794vV48npQmi9Y579tFZWUVIr+lsvJeevXKZs2aoU2Sy8Gzi4LzBsPOHkaKJ4UNv9jAqHGj\nbCMbExFRDV/rJSJvhzmsqnp+dJsUhhWmJYVXPhwIkybFuxkhtWaTm3DnBh/LyfkXJSVfaPG6kdw/\nVDHalMlTGPt0401xfPU+1t6+lmeWP9POn4rp7M7tda5Ecl4ks4y+2P7mmFgKriXYV16Oz+fD6/GQ\n17t3w+tdrbagtY7lExovQnf22Zfzxz8+GNGCdaeffjY//vFXyMzMJTPTmYnkFK09yeDBsxudG9j7\nqKraz6OPfo19+yrIyFjU7HnN8W+K4+8hgOUNTOtFMstooIg8JSKvuc9HicgdsW+aiVTwQndLgOK0\nNPLAFr5rheY2uSko+F7EC9Y9/vgMqqv7UF7es5miteY3z9m0aT81Nf3CLoLXXHVy8KY4ljcwbRFJ\nDuFpnFlF/iqWzcBfgaeae4MxnVGoTW58vno2bqwlJ2cxS5dOQ9VH795/ZOPGK8nK2t7o3Pr6o5SX\nVwK/5+jRuygrO53U1PRGRWspKQMC7td48xyRh6mtnUF5+Vg8ntQm5/mFqk725wf8m+LkDM2xvIFp\ntUgCQj9VXSAiD0JDhbE3xu0ypsOFKjbzj+mnp7e8YN3//M81VFaeRlraZdTV3cawYevCViT7+Xsm\nQ4ZcQk3NPW1eCC9wUxxj2iKSgHBQRPri7p4mImcCNvaQQPaVl7OxvLzheV19PbX19dQBaz/9FNyJ\nA0VA7tVXOyelpVH8wgvk3nAD1NU1vah7vCsLzCn4F6yDfwYsWHdsfL+4uJD169eRkvIkgFtr8IVm\nK5JD3QP8dRDX8fHHy/jOd+a2eQMdY9oikjqE+4HFwIki8h4wD7g3pq0yreLz+RiVktLwSAMyxJ1U\noMoYEcaIOMvJpqVRnJZ2LAjU1TW8FvgIGSS6mMCcQmWls2AdXEVl5dwm4/sFBQ+4lciDAPB4BoWt\nSA51D2h9HYQx0RTJLKPVInIekA8IUKiq9tsigXg9HiZ4j43i7QN8qhwGLgHy3B5CtkQ088y4AnMK\n1dWf4fM5P+Pqah8pKc+55zjj+1u2/Af4kLq6xqm14FqDcPeA1tVBGBNtzQYEEZkI7FbVEjdvMB64\nDtgpIg+r6oEOa6UJK69372ZXLN1bVsbKtPC/lExoLS1gF2j+/B1RuUdwHULgiqeR7n9gTFuFGzIq\nAI4CiMi5wC9xhosq8e9gZhLeYZ+PCUeONHkc9vni3TQTJNS6SsFrGbW0O5ox7REuIKQE9AK+AsxR\n1RdV9SHgpNg3zURDGrBSpMnD+gyJp7k6CMslmI4SLoeQIiKpqloPXABMi/B9poOFXY+otJS14ZYn\nSUsjt5lZRqZjhaqDcF4fHNX9mI1pTrhf7PNxFrbbD9QC/wIQkZOwaacJJdxyFBPuuIMxIfILeW4A\n6epTSxNJa3IWxsRCswFBVX8mIm8Bg4A39NgqeB5s2mlCC1zbaHdpKWtLS5ucU9TRjUpSrd2Lua0s\noWw6QtihH1VdEeK1zbFrjomGwH2Sc0tLGeO+Xkvj+gTTfu3d/7g1LKFsYi2SwjTTidUDE9zHmcAE\nVSaoYoUk7dd4P4TQO5sZ05lYQEhyORybZTQfWHnccaw87ji6eeyfvr1isRezMfFks4WSUFFA3qAE\np1cAUAfsO3KEFNyewx13hN07AQi5ZHYi7avQUWP4oe4baj8Eqyw2nZl9TUxS/vWLUoCV7mMFOOsZ\nAW9Ai3snBO+zkIj7KoTa07ij7ttRNQOWUDYdxQJCEqrjWK7AC6x1H5txSs8P4S5d28nFcwzfqRl4\njsrKCQ0Pr/c51qxZHtX7+IOBJZRNR7AhoyTUzeNpWL8o58iRhllGXiAdyMRZpbCz839Lz8jIp6bm\n8g6Z6ePXkTUDFgxMR4lLD0FEbhCRDSLiE5EJ8WiD6dwiWffHGNM68eohrAeuxVlAz7RBYPFZUXk5\nKe5idR6Ph1qfj9wjRxp6Af6Im4WTZN7gPl+7davzZ309uzuq4VESbgy/uV5CuAR0vJLTxiSSuAQE\nVd0EILY+f5sFFp9NKC9vGCLa6PVyE/ABTs7Ax7Fu4CU4OYRb3OeBqxXVQaP1kPyzjJpdIynO2rLu\nT7giso4sMDMmUSV8DkFEpuEurFdw991Mu/TSOLco8QlORXKaO910lBt4B6qyDyfB7AM8AQE5R5WV\nTz3V5FqJqrVj+I0T0DMaTQ8NdyyebHaR6WgxyyGIyFIRWR/icVVrrqOqc1R1gqpOsGBg2ipcEVki\nF5hZQtl0pJj1EFT1wlhd24SnOFtoKs4QkX/5633u8bXun2OavjUp+XsA6enPsmfPVvr1u4Vly27h\nkktuAzShCsxWrX6NxW/NYt9n28nK6Y3vnus588IzO7wdpmtK+CEj0zYenKEjD8d+8efhBIsxHAsK\nXYG/B1BbKxw+7KWmBtLTj/UEWpucjpVVq19j7hszyb1zKGNGTKTs02IKZjvzLiwomI4Ql4AgItcA\nvwX6A38XkTWqekk82tJZBW6KUwQNm9x4PB4O4qxh5Jfn/pmFExDG41QrB654WpfECf41a5ZTV1dE\nZeUsRPpQWXmAXr36s2aN85NJlE1pFr81i9w7h9LrFKdnkn1KL7pNg4XzFlpAMB0iXrOMFgGL4nHv\nZNHSpjj+GUg5W7ey0n09MJGco0rJ4q6xIcvPfra4yeb1F11Ews0m2vfZdsaMcJIGRzzVAGTnZ7N9\n1/Z4Nst0ITZklIS2lZaSG7Apznj3zyzgHwG9gtyrrz72prS0JrunBdY6BEqkxe0i0VkWohs44Hiq\ntpQ39BAyM6FiQxU5Q3NaeKcx0WFrGSWhdKBYhGIRlgCr3Ee1ezwTSMFZ1M7/IMS+yp1hcbtIdJbN\n66+84D6K/7iLik1l+Op9VGyooGhOEddPvT7eTTNdhPUQklRtQE/An0AuBk7ACQbJsLhdpDrL5vXj\nx10GwOI/z2Jz6QaGj8hh+ozplj8wHcYCQhJK8XjIcCuXA6eWpri9gOK0tBDvSl6dafP68eMuY/y4\nyyjs9o7VIJgOZwEhCQSP9Xt9PmqPHEFE6Jae3uhcr8/HxiNHmlzDG/NWmkhZhbKJFwsISSBwXSOA\n3NJSMkQaDRsFGhVqimkz55r4sN6BiQcLCMlIhFx3c5yUwGRxWhp1R44wJsQv/6Yp5ca1DsGvG2OS\njwWEJFR84omAs1Jp8IJ1gTUKjV4P8Yu/M00tNca0nwWEBNbWOoDcTz8Ft4eQc+WVDa8fBTI8HjaW\nl5OSkkL+kCExaLUxprOygJDAgnMDfqG+zTeiSnFADiHDzRnkqjLI42FUSgobvZZGNsY0ZgEhCQSP\n9Xtx6hBEBA3KF2SnpDDB62Wvz8egEBvimPjxzy6yhLKJFwsISSB4+Cj36qsb6hBqg6aYLnOHiULl\nF0z8WTAw8WQBIQmEqkPYeOQIKSIMjWO7jDGdiwWEJBCcaxhTWsooETZabYExphUsICSwttYBdBdh\njLt/MtBQdHaUYwlpyxkYY4JZQEhgba0D+HeYOgSTmGy5CpMILCAkge2lpYwJ2P/AP1BUhFOI5tfZ\n9jHoaiyhbOLNAkISSAPWBqxP5FPFg7ONZmBuocX6BWNMl2YBIUkEJpAVSN4dko0xsWIBIQmkeDyM\nCtjjoPbIETJESLFZRsaYVrAtNI0xxgDWQ+g0wi10Zzo3m2FkEoUFhE4i7EJ3aWnkBux74AVQbVR3\nABY8EpnNMDKJwAJCEih+4YV4N8EYkwQsh2CMMQaIU0AQkUdF5BMR+VhEFolIr3i0w5h4s/yBSSTx\n6iG8CZyqqqcDm4EH49QOY+LO8gcmUcQlh6CqbwQ8XQFcH492dCa24b0xJtYSIan8deCvzR0UkWnA\nNICCu+9m2qWXdlS7EoqtQWSMibWYBQQRWYqznE6wH6jqy+45PwDqgWebu46qzgHmAPDKK1Z6a4wx\nMRKzgKCqF4Y7LiK3A5cDF2jwxr/GGGM6XFyGjETkUuC7wHmqeigebTAmnmx2kUlE8cohPAEcB7wp\nzrLNK1T1rji1xZi4sNlFJtHEa5bRSfG4rzHGmOZZpbIxxhjAAoIxxhiXBQRjjDGABQRjOpzNMDKJ\nygKCMXFgM4xMIrKAYIwxBrCAYIwxxmUBwRhjDGABwZgOZQllk8gsIBjTwSyhbBKVBQRjjDGABQRj\njDEuCwjGGGMACwjGdBhLKJtEZwHBmA5kCWWTyCwgGGOMASwgGGOMcVlAMMYYA1hAMKZDWELZdAZx\n2VPZmK6ksNs7lkw2nYL1EIwxxgAWEIwxxrgsIBhjjAEsIBhjjHGJqsa7DZ2WiExT1TnxbkdH66qf\nG+yzd8XP3pU+t/UQ2mdavBsQJ131c4N99q6oy3xuCwjGGGMACwjGGGNcFhDap0uMK4bQVT832Gfv\nirrM57aksjHGGMB6CMYYY1wWEIwxxgAWENpFRB4VkU9E5GMRWSQiveLdpo4iIjeIyAYR8YnIhHi3\nJ9ZE5FIRKRSRrSLyQLzb05FE5E8i8pmIrI93WzqSiAwRkbdFZKP73/p/x7tNsWYBoX3eBE5V1dOB\nzcCDcW5PR1oPXAsk/brOIpIC/A64DBgF3Cwio+Lbqg71NHBpvBsRB/XAt1V1FHAm8I1k/3e3gNAO\nqvqGqta7T1cAefFsT0dS1U2qWhjvdnSQScBWVd2mqkeB54Gr4tymDqOq7wAH4t2Ojqaqe1V1tfv3\namATkBvfVsWWBYTo+TrwWrwbYWIiF9gd8LyIJP/FYBoTkeHA54AP4tuS2LINclogIkuBnBCHfqCq\nL7vn/ACne/lsR7Yt1iL57MYkOxHpAbwIfEtVq+LdnliygNACVb0w3HERuR24HLhAk6yoo6XP3oUU\nA0MCnue5r5kkJyJpOMHgWVV9Kd7tiTUbMmoHEbkU+C5wpaoeind7TMx8BIwQkeNFJB24CVgc5zaZ\nGBMRAZ4CNqnqr+Pdno5gAaF9ngCygDdFZI2I/D7eDeooInKNiBQBZwF/F5El8W5TrLgTB+4BluAk\nFheo6ob4tqrjiMh84H0gX0SKROSOeLepg3weuBU43/3/e42IfCnejYolW7rCGGMMYD0EY4wxLgsI\nxhhjAAsIxhhjXBYQjDHGABYQjDHGuCwgmKQiIl53euB6EXlBRDJbOP/7EV53h4j0i/T1aBGRqwMX\nVBOR5V1hdVkTHxYQTLKpVdWxqnoqcBS4q4XzIwoIcXQ1zgqrxsScBQSTzP4FnAQgIl8VkQ/d3kOB\niKSIyC+BDPe1Z93z/iYiq9z176e15aYi0t3dQ+BDEfmPiFzlvn67iLwkIq+LyBYReSTgPXeIyGb3\nPX8QkSdE5GzgSuBRt40nuqff4J63WUS+0I6fjzGN2FpGJimJSCrO/gWvi8gpwFeAz6tqnYg8CUxR\n1QdE5B5VHRvw1q+r6gERyQA+EpEXVbWslbf/AbBMVb/ubpr0obtQIMBYnFUzjwCFIvJbwAs8BIwD\nqoFlwFpV/beILAZeVdWF7ucCSFXVSW7V7A8BW3PKRIUFBJNsMkRkjfv3f+GsRTMNGI/zCx4gA/is\nmfd/U0Sucf8+BBgBtDYgXAxcKSIz3efdgKHu399S1UoAEdkIDAP6Af9U1QPu6y8AI8Nc37/I2ipg\neCvbZkyzLCCYZFMb9I3fv0jZXFUNu6OdiEzG+bZ9lqoeEpHlOL/MW0uA64I3EBKRM3B6Bn5e2vb/\noP8abX2/MSFZDsF0BW8B14vIAAAR6SMiw9xjde4SxwA9gXI3GJyMs21iWywB7nUDESLyuRbO/wg4\nT0R6u0Nd1wUcq8ZZQNGYmLOAYJKeqm4E/h/whoh8jLMX9iD38BzgYzep/DqQKiKbgF/ibIsaiY/d\nVUCLROTXwE+ANPf1De7zcO0rBn4OfAi8B+wAKt3DzwPfcZPTJ4a+gjHRYaudGpMARKSHqta4PYRF\nwJ9UdVG822W6FushGJMYHnaT4euB7cDf4twe0wVZD8EYYwxgPQRjjDEuCwjGGGMACwjGGGNcFhCM\nMcYAFhCMMca4/j/lude0lPg7pAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11874c240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svc = SVC(C=10, kernel=\"linear\", random_state=345)\n",
    "svc.fit(X_train, y_train)\n",
    "print(\"accuracy\", svc.score(X_test, y_test))\n",
    "plot_decision_regions(X_std, y, svc)\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")\n",
    "plt.legend(loc = \"upper left\")\n",
    "plt.title(\"SVM classifier using gamma = 1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy 0.911111111111\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x119aa0d30>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEWCAYAAABmE+CbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VNX5+PHPkw0SSAh7IGFxgSCoUATcWrXutkK1LrVi\nUSs/rNb2WxS72Va//dYuitJ+q7VQrEJLtYj1W7ClLC7V2tKwlB0JyhIIJATIvpHMnN8f995kMpmZ\nTJKZzPa8X695wczcufdMAvPMOc95zhFjDEoppVRSpBuglFIqOmhAUEopBWhAUEopZdOAoJRSCtCA\noJRSyqYBQSmlFKABQYWJiDwhIr8P4/l3icgV9t9FRF4SkXIRKRCRT4nI3nBdO1gi8msR+X6k26FU\nsDQgxAkR+aSI/FNEKkXklIh8ICJTReQiEakVkb4+XvMfEXlIREaLiBGR/3g9P0hETovIwR57I0Ey\nxkwwxrxr3/0kcA2QZ4yZZox53xiTH7nWWYwxXzHG/E+k2xFvRCRNRFaIyEH73+0VkW5TvNCAEAdE\nJAt4E/glMADIBf4baDTGbACOALd6veZcYDzwisfDGfbjjjuBA2FseqiMAg4aY2q7eyIRSQlBe1T4\n/QO4CyiJdEPiiQaE+DAWwBjzijHGZYypN8asNcZst59fAszyes0s4K/GmJMej/0OuNvrmKWBLiwi\nE0Rknd0rKRWR7/o57jURKbF7MO+JyASP5z4jIrtFpFpEikVknv34IBF5U0Qq7PO/LyJJ9nMHReRq\nEbkPWAxcLCI1IvLfInKFiBzxOP9wEXldRMpE5ICIfN3juSfsb5u/F5Eq4B4fbX9XRGZ73L9HRP5h\n/11EZIGIHBeRKhHZ4QRVEXlZRH5k//0KETkiIo/Yxx4TkXs9zjlQRFbZ59goIj9yruHn5zlLRA6J\nyEkR+b7z87CfmyYi/7J/bsdE5DkRSfN4rRGRB0Vkn/0z/x8ROcvuYVaJyHLneI92f9Oj3TfZv7NC\n+/fyXY9zB7x2KBhjThtjfm6M+QfgCuW5E50GhPhQCLhEZImI3CAi/b2e/x1wmYiMALA/VO/EChSe\nfg/cISLJIjIe6Av8299FRSQTWA/8DRgOnA285efw1cAYYAiwBVjm8dyLwP3GmEzgXOBt+/FHsHo3\ng4GhwHeBNmutGGNeBL4C/MsY09cY87hXG5OAVcA2rJ7TVcA3ROQ6j8M+B6wAsr3aFYxrgcuwgnI/\n4HbgpJ9jc+xjcoH7gOc9flfPA7X2MXfTNjC3Yf9ufgXMBIZ5nNPhAuYCg4CLsd7zg16nuQ64ALgI\n+CawCOsb9wis38EXvdrd277GD4Df2MdeAHwK+L6InNGJa3u+l4oAt2/7e50KDw0IccAYU4U1jm6w\n/rOWichKERlqP38YeBf4kv2Sq4BewF+8TnUE2AtcjdU7+F0Hl74RKDHGPGOMaTDGVBtjfAYQY8xv\n7ecbgSeAiSLSz366CRgvIlnGmHJjzBaPx4cBo4wxTXZuoLOLb00FBhtjfmh/s9yP9TO6w+OYfxlj\n/s8Y4zbG1Hfy/E1AJjAOEGPMHmPMsQDH/tB+L38FaoB8EUkGbgEeN8bUGWN20z5Ye7oVWGWM+Ycx\n5jTWh3TLz8UYs9kYs8EY02yMOQgsBC73OsdTxpgqY8wuYCew1hiz3xhTiRW8P+HV7ieNMU3Aq1gf\n9r+wf5+7gN3AxE5cu4UxJjvA7acBfgYqDDQgxAn7g+geY0we1je84cDPPQ5ZQmtA+BLwqv0f3NtS\nrGGTL9JxQBgBfNxR2+wex09F5GN7WOag/dQg+89bgM8Ah0Tk7yJysf3408BHwFoR2d/Fb4yjgOGe\n3zyxehpDPY453IXzAmCMeRt4Dusb/nERWSRWTseXk8aYZo/7dVi9sMFAilc7ArVpuOfzxpg6PHol\nIjJWrKG2Evvn/WNaf9aOUo+/1/u47zkJ4aQxxuXxnK/X9+3EtVWU0oAQh4wxHwIvYwUGx5+APBH5\nNPB5/H8DfR34LLDfGFPUwaUOA2cG0aQ7sYZlrsYa3hhtPy52ezcaYz6HNZz0f8By+/FqY8wjxpgz\ngRnAwyJyVRDX827jAa9vnpnGmM94HNNRr6MWyPC4n+P5pDHmf40xF2Al6ccCj3ayjWVAM5Dn8diI\nAMcf8zxWRNKBgR7PvwB8CIwxxmRhBUDpZJu6qlPXFivv4+/mMx+lwkcDQhwQkXF2sjLPvj8C6xv+\nBucYewbOCuAl4JAxZpOvc9nHXQnM9vW8lzeBYSLyDRHpJSKZInKhj+MygUasb7EZWN8anbanichM\nEeln91iqALf93I0icraICFCJNT7tDqJdngqAahH5loik272Vc0VkaifOsRX4vIhkiMjZWOP/Tvun\nisiFIpKKFTgaOttG+9v3n4An7GuMo/0kAE8rgOkicomdsH2Cth+6mVg/xxr7XA90pj3d1Klr23kf\nf7cf+3ud/e+tt303TUR62/9OVDdoQIgP1cCFwL9FpBYrEOzESsp6WoI1hBJw5pAxZpMxpsOhIGNM\nNdb8/+lY0//2AZ/2cehS4BBQjDXevMHr+S8BB+0hhq9gJUvBSkKvxxpr/xfwK2PMOx21y6uNLqxc\nxySsKbQnsGYl9Qv0Oi8LgNNYwyRLaJt4zsLKSZRjvceTWENdnfWQ3aYSrKG6V7CCaDv2uP3XsMbz\nj2H9fI57HD8Pq1dWbbftj11oT1f11LX3Yg1V5QJr7L+PCtO1EoboBjlKRR8R+RmQY4zxO9vI49i+\nQAXWME0s1I2oKKU9BKWigD3sd75YpmENS70R4Pjp9vBSH2A+sIPWZL1SXaIBQanokImVR6jFGmZ5\nBvhzgOM/Bxy1b2OAO7owJVepNnTISCmlFKA9BKWUUraYWsjrvYr3tDujwq5gI+Q3XBbpZkTc3t7v\nMa0zk3PjWMFGoLCQ/JLzmT6ttMPjo8706UFNyY2pgKCUCr+9vd8D0GDgKZaDQSfokJFSHgo2RroF\n0UGDQauCZYkRDEB7CEq1o8NFClqHiYCECAagAUEppXxLkGEiT7EfEJoh41QGyU3JkW6JX65UF3UD\n6uLhpx3XdLhIOQo2knDBAOLgIyrjVAZDs4fSr38/onFtK2MMlacqKT1VSt2Qukg3R3VAh4uUM1Q0\nfdrQDo+NNzGfVE5uSo7aYAAgIvQb0C+qezBKKQ/2UFEiivmAAERtMHBEe/uUUpaCZYmVRPYW80NG\nSoWC5g8Sm+eMonkjE2+oyBEXPYRosG7NOiZPmMzEcRN59qlnI90c1QWaP0hg9jBRIgcD0IAQEi6X\ni0e+/givr3qdjds3suLVFXy4+8NIN0spFQSnd5iow0SeEmrI6MaLLqem7ES7x/sOHsSbG/7e5fNu\nKtjEmWedyRlnngHALV+4hb+s+gvjxo/r8jmVUuHnuUYRIzUgJFRAqCk7QcGgQe0en+YjSHTGsaPH\nyMtr3R99eO5wNhX43LJYRRnNHbTlrGOUCJwE8ryRQzUY2CIWEOwNst8DetntWGGMeTxS7VGJS3MH\nbSXSOkaJnjPwFskeQiNwpTGmRkRSgX+IyGpjjPcG7FFv2PBhHDlypOX+0eKjDM8dHsEWKaUCcXoH\nqq2IJZWNpca+m2rfYnK/gwumXsD+j/Zz8MBBTp8+zet/fJ3P3PiZSDdLKeWDsyyF9g7ai+gsIxFJ\nFpGtwHFgnTHm3z6OmSMim0Rk08qXV/Z8I4OQkpLC0794mps/ezNTzpvCzbfdzDkTzol0s1QHNH+Q\neFqXpdCcgS8RTSobY1zAJBHJBt4QkXONMTu9jlkELILu75jWd/AgnwnkvoPbJ5o767obruO6G67r\n9nlUz9L8QeLQGUUdi4pZRsaYChF5B7ge2NnR8V3VnamlSqnY5QQDnVEUWMSGjERksN0zQETSgWsA\nreZSSoWeEwxUQJHsIQwDlohIMlZgWm6MeTOC7VEJRPMHiUN/18GLWEAwxmwHPhGp6yul+YP412ao\nSHVI1zJSSgHxV6XcJomsgqIBQSnVIl6qlD2DgU4xDZ4GhBB4cPaDnDn8TC6cdGGkm6KCoGPKCcAe\nJtJg0DkaEEJg5t0z+dObf4p0M1QnaP4gfumyFF2XkAHh5ImT3Dr9Lk6ePBmS8136qUvpP6B/SM6l\nlOo6p/enSeSuSciA8NLiV9i0sYqXfvNKpJuilAoRTSJ3X8IFhJMnTvLK79YwdOjzvPK7NSHrJajo\nV7DRXthMh4vijiaRQyPhAsJLi1+hufmz9O6dT3PzZ7WXkGA0GMQvDQbdl1ABwekd9O07C4C+fWdp\nL0GpKLZh/QbmzZrHzCtmMm/WPDasb79dSsGyQijURHIoJFRAcHoHKSnW6qYpKYNC0ku49657ufpT\nV7Nv7z7GjR7H0t8uDUVzleox0ViUtmH9Bha+sJD0melMenkS6TPTWfjCwjZBwTOJrL2D7ouK1U57\nyrtvvU9zcyknTrzq9fhQ5n37oS6f96Xfv9Tdpqkw09qDjkVbUdqKpSvIm5NH9oRsAOvPOdbjF119\nkXWQLksRUgkVEN5c98dIN0FFkOYP/Iu2YABwrOgYk/IntXksKz+LA0UHAA3y4ZBQQ0ZKqdgxbOQw\nqvZWtXmsam8VOSNzdNG6MNGAoJSKSrfOupUji45QsasCd7Obil0VHFl0hPMvvlXrDcIkoYaMVGLS\noYXY5OQJVixdwYGiA+SMzOHTV9/PuKwBOsU0TDQgqISg+YPYdNHVF7UmkLGmmOo2mOGjQ0ZKqZig\ni9aFn/YQQuDI4SPcf+/9HD9+HBHhnvvu4cGvPxjpZikVlTas38CKpSs4VnSMYSOHceusW9v0AnwJ\nZtG6Hy5/lefe/yvVdfVkZqTz0Kc+ww9uvwOA1Vs2s+CtlRw4XsoZQ4Yy96oZ3DD5gpC9p3ihASEE\nUlJSePKpJ5k0eRLV1dVcduFlXHn1lYwbPy7STVMqIKcgbVoPXc8pNsubk8ek/ElU7a1i4QsLAfwG\nhTaL1vkZKvrh8leZv2UlI76Xx1kTMqnaVc38BSsBmHr2GOatXcLI2blMHTOR8n1VzFu8BECDgpeE\nGzJat2YdN912E5+Y+gluuu0m1q1Z1+1z5gzLYdJka750ZmYm+ePyOXr0aLfPq7pPE8od68kaBM9i\ns6SUJLInZJM3J48VS1cEfF1HSeTn3v8rI+bmkT2pH0mpSWRP6seIuXk89/5fWfDWSkbOzmXgOdY1\nB56TzcjZuSx4a2Wo317MS6iAsG7NOr738++RcmcKFyy9gJQ7U/jez78XkqDgOHTwENu3bmfKtCkh\nO6fqHk0oR49jRcfIys9q81hWfhYlRSU+j3d6Bx3NKKquqydrQmbb807IpLqungPHS+k/pu01+4/J\n4uBxTUx7S6iA8Pzi5xkxZwQDzh1AUkoSA84dwIg5I3h+8fMhOX9NTQ1fuv1L/PSZn5KVldXxC5RK\nMIGKzXwKUG+westmrn36ccY8+hUkCSp3eJ13VzWZGemcMWQo5fvaPle+r4rRQ7SozVtCBYRDBw+R\nPS67zWPZ47I5dPBQt8/d1NTEXbffxe1fvJ0ZN8/o9vmUikf+is1unXVru2OdWUW+egert2xm3tol\nJN+bwdTFE8m9dAiHFhymfEsF7iY3FVsrObzgCA996jPMvWoGRYuLObnHuubJPRUULS5m7lX6/9Rb\nQiWVR40eRcWHFQw4d0DLYxUfVjBq9KhundcYw1f/31fJH5fPQ3O7vkieCh0nd6DDRdHFV7HZ/Q/c\n3y6h7AQDf7OKPPMCABc+ej7/fno7B39wEOOGzIx05n1qRsssI4AFL61k0/EDjB4ylPnX3q0JZR8S\nKiB8dfZX+d7PvwdzrJ5BxYcVHF50mB9940fdOu+GDzbw6rJXmXDuBC694FIAfvCjH3DdDdeFotmq\nizQYRCfvYjN/Ak0xPXC8lKljJrZ5bOrcc5Fd2yh8+tftjr9h8gUaAIIQsYAgIiOApcBQwACLjDG/\nCOc1r7nuGsDKJWw+uJlRo0fxo2/8qOXxrrr4kxdT1VTV8YFKqYCcJHJHnLyA00MAzQuEQiR7CM3A\nI8aYLSKSCWwWkXXGmN3hvOg1113T7QCglAqTIPdFnnvVDKuWYLY1Y6h8XxVFi4uZf+3dPdTQ+BSx\ngGCMOQYcs/9eLSJ7gFwgrAFBKWXZ2/u9qNoHoWBj8PsiO8M/mhcIrajIIYjIaOATwL99PDcHmAPw\nyIJHmHFP+5kBxhhEJLyN7AZjTKSbkFC0GC1GFRYCwS9prXmB0It4QBCRvsDrwDeMMe0G4o0xi4BF\nAO9VvNfuk9WV6qLyVCX9BvSLyqBgjKHyVCWuVFekm5JQNKEcvXytZZRUqktaR4OIBgQRScUKBsuM\nMX/qyjnqBtRReqqUEydOhLZxIeRKdVE3oC7SzVAq4nytZfS/P1/I9ROnM+96TQhHWiRnGQnwIrDH\nGPNsl0+UAnVD9MNWqVjguZYRQPaEbHJnnWbLrzbA9VdFuHUqkpXKlwJfAq4Uka327TMRbI+KA5o/\niG7eaxnV1UHfszOpaTgcwVYpRyRnGf0DiL5BfxXzNH8QvZy1jLInZFNXBzQ00vjh6Tb1A7p3QeQk\n1FpGSimLsw9CT/Ney6h+ZwPlyw61rCvkvUZR8r0ZzFu7hNVbNkekvYkm4rOMlFKREYkaBGfJit8+\nt4JTR/YyafhwHvOoH/Beo2jgOdkw26o30F5C+GlAUEr1qIuuvsjvNFNfaxT1H5PFpuMHerKJCUsD\ngoobBRs1fxBJgfZK9nxOmlIwzYbe0sQv/942R6BrFEWWBgQVNzQYRE6gvZKBlufGDB9D0YYiTr1+\nkrNuO4vkAb3b7G+saxRFlgYEpVS3+aovYA4teyU7zx3aV0T2hf3pM7Q3Hy09whU/mtImR6BrFEWW\nBgSlVLcdKzrGpPxJbR7Lys/iQNEBDKblOVdzMxnpaaSN7cOhY0VA+xyBrlEUOTrtVMUFLUgLXjim\nnAbaK3nYyGEc31ZF3alGUpN74Wp0UVtYS99hGYDmCKKJBgQV8zQYBM8JBqGecupdX3Cs4BjbfrSN\nA7sOUFFWwYHnPqJ+ZwPDMvtSsaGSw78q5uwb8nR/4yijQ0YqLmhCOXjhqD/w3Ct5z9491J+uZ/QX\nRzP69tEc31bFqZ/spvQXpRyXKjLTM+jTPJCjvzmmOYIoowFBKRUSzl7J82bNI31mekuCOeucbMZ9\nfQIZr1ax9tGnItxKFYgOGSmlQsp7ATsaGsk6ux8Hj+teB9FOA4KKaYmYP6iqOsF///ctVFWdjHRT\nfPJMMNedaqRXUzqm+KQmjmOABgQV8xItf7BmzVIKC8tZs2ZJpJvik5NgLtlsJZhdRWWaOI4RmkNQ\nKoZUVZ3g7bffpH//F3j77Qe47rq7ycoaGOlmtdGygN1TSzlSVs2EEQM1cRwjNCAoFUPWrFmKy3Uj\n6en51NTcyJo1S7jttoeDem1PLnntLGA3b6QOE8USDQhKxQind5CevhyA9PRZvP327W16CVVVJ1iw\n4H7mzl3UpuewectqXn3ncWor2i885y3QInXBHlewrJD8kvNhpCaSY0lM5RAKlhVGugkqiiRaQtnp\nHSQnDwIgOXkQLteNbXIJvvILm7esZsnaefS7N51JL08ifWY6C19YyIb1G9pdw1mkLn1m4GMDHef8\nXryXtlbRL6YCQn7J+RQsK9TAoFokUkJ569Z3cbn+QGXllJaby/UHtm59F/DOL7zZMgtp5VsLyJ09\nkqxzsklKSSJ7QjZ5c/JaFp7z5LlIXaBjOzouv+T88P4wVFjE1JDR9GmlTGcoqwqGUrBse8vj02aO\njWCrlOoZTz65MuDz/vILpccPMHHMVJqobTnWWXjOW6BF6rpynIotMdVDcEyfVsq8kUOZN3Ko9hpU\nQnNqEoqLC+38wizAyS9YvYShQ86gal9529fZC895816krra6ln3v7OPUiVPMmzWvZejI32J2Gdk5\nUFjI5o//ybVPP86YR7/CtU8/rnsix4jkJ554ItJtCF5h4RPeD+Xn1nJJv778s7KW4h0nKW4cSG5u\nBNqmelzxURjUPCrSzYiolSt/zQcfbGf//veprr6G3r2vAiApKYPGxpMYs42LLpjO+6+9RsqoJDKG\npFG5p5Iji44wa/Ys8s7Ma3O+rMws3ln4Dmkj02hKbaJoQxFlK8o458FzSL8onXcWvkPOwBzGTxzf\nclzagNZzXn7tLHpvcvHaoV/Q/76BnHXvKBpHunnttfc5M2MIY4YNj8SPSeXn/3cwh4kxJvABIr2A\nW4DReAwxGWN+2I3mdc2qVYEbC8wvapvI0uGk+OOZTE6kHIK3qqoTfOtbt5Oc/AIlJTPIzEwnKant\nKHBOznCefHIlf975FP9Ys4K6ihJyRuYENcto1+ZdpI9O5+wvnc3QT1rTRyt2VVC/rJ75S+e3HFdS\n1HrOpNIB/OE3ixn6XylttsE8uacC10t1rH00qM8lFWrTp0swhwWTQ/gzUAlsBhq706ae4DnveX5R\nqTWUNHZsWFZ4VJGTyIHA4ZkzGDDgfq65Br81CeOmXMSsB3wHAG/OInUzr5jJpOcnkZTSOrLsmSdw\njnM4U02rGw4zbszENuf03gRHRadgAkKeMeb6sLckDJzgML+wkIJCYKzVW9DgoKKNv/oBf8c+/fS9\nlJZWkJ7+BtBxTQK9W18fbJ2BkydwVi0FOLj8IDU1Ncy8Yiam2VBVXcXphtNkZGYwelA+g9IaKa2q\nYNuG/Zw5eTj9MnQTnFgSTFL5nyJyXjguLiK/FZHjIrIzHOd3OMnn/Pd6Q6GVgE60OewqunVmfaI1\na5ayZ88JamoGdbomIdg6A2i/6c3+P+zn4MqDnP3dsxnwpQFUZVQx+GuDGf/KeIZ8ewgfVm7nwOAT\nTH7kHI6tKKVwy2HKq2t0E5wY4jcgiMgOEdkOfBLYIiJ7RWS7x+Oh8DLQI72P6dNK28xO0sCgooW/\n+oFAx4o8QX39NsrLJwVVk1BbVQkEX2cA1pDQ/Q/cT/2yerbds43i5cWc8/A5DJs2jKI/FzH8oeFk\nXZxFU00TGef2Ie/hXI5uOUHepTlMvGMMFa+f4r1ZG3G9VKdrGcWIQENGN4b74saY90RkdLiv48u8\nkVY9w162twwn6VBS9IvHAN6Z9YmcY0eMuI6amof85g28z7nhL2v59FW3dbp+wDNPMPOKmQydbA37\nNJY20mdcH0gG92k3xu2m73l9aaptBiD3oiEMmzKITbO3aSI5hvjtIRhjDhljDgE/cv7u+VhPNVBE\n5ojIJhHZtOhvfwvpuZ0eQ37J+a09Bu01RL14Sig73+TT0j7L0aO3kJZ2Y7teQjC1Br7O6Xnc5nUb\nqTxV6bd+wFdNgjfP1/Ya2ovaD2txN7hJSktCJInaHTWk9mn9jql5g9gTTA5hgucdEUkGeqzvZ4xZ\nZIyZYoyZMuf68IwueRe6OcFBqXBzvsnX1PyFhoZyamre9JsLWLjwWx2uZeR5Tue4ppReuFzTWfXy\n2nZ5gYpdFRxZdIRbZ93aYVs9XzvycyM5+txRqv5VRUqfVOq213Lk2WKGTx6Eu9mteYMY5XfISES+\nA3wXSBcR5yuFAKeBRT3QtojwtTyG1jKocNm69V2amoqorKxC5JdUVn6N7Owstm4dyW23PdwmF7B7\n99VkZh6isvIPXucY3mbYyFrz6GjLcU3SQK802PTuAO56+DbAyiUcKDpAzsgc7n/gfr81CZ6cY1Ys\nXUF5UTlZzVmU/bKMI/XFZKRl8Pn8aZSWVbJp9jZGDxmqeYMYFExh2k+MMd8JWwOsHMKbxphzOzw4\niMK0UFtVMJS9ORoYokXBxvgaMgJ47bVnWbcO+vZ9mJqaZ9vkBQI9F6y9vd8La36sYCPkv9dbVzeN\nZkEWpgUTECb7eLgSOGSMae5C0zzP/QpwBTAIKAUeN8a86PcFEQgIDq2AjjwntxNPAcGpNk5LW24P\nAZ3g9Onb+dnPXgOMXYm8jBMnahk0qC8u15387GevdWqXtL2938Nd2Vp7kJ6ejiQLdTV1IdkbwQkI\nKSl/ZcFbKzlwvJQzhgxl7lUztIcQLUJYqfwrYDKwHWvI6DxgJ9BPRB4wxqztahuNMV/s6mt7mlZA\nR4d4CgbQ8R4HLteN1NcLDQ0uamogLa1zu6QBfLhpA++sX0jenDyGnxhO4bJCBt08iDHTxuA66mLh\nCwsB2n3QOzULeXPymJQ/iaq9Ve2OLdiIvZhdDa8dWsLI2blMHTOR8n1VzFtsvQcNCrEjmKTyUeAT\ndmL3AmASsB+4BngqnI2LVlrLoEIl0B4HVn7h91RWTkXkdiorp9LU9PuWWoNg/WNNa+3BoZWHyP1q\nLtkXZ1NZWRmSvRHyS87nn0eWMnJ2LgPtPRcGnpPNyNm5LHgr8JLdKroE00MYa4zZ5dwxxuwWkXHG\nmP0iQfVC4pavpTG0x6A6o6M9DrqTQ3D2UD5Veowxdu1BfXE9fcb2QZKFxtPW0mTd3RsB4MDxUqbq\n+kUxL5gewi4ReUFELrdvvwJ226ugNoW5fTGhXS2D9hhUCPiqJ+ioktnbtKkwekxr/UB6bjq1hbW4\nGlykpqVa1wlyb4RAx54xZCjl+9oeq3UIsSeYgHAP8BHwDfu2336sCfh0uBoWa3wVuanQibcg6xSb\n+fpwd577859fCKruoCOe9QOjZoyi+PliKv5VQb9+/ajYVcGep/ewZ9Mers2/lpum3MSS+UtaXlf4\n00I+uP8D3rnjHT64/wO2zN3Ch9s+bDl23R+sY+deNYOixcWc3FOhdQgxrMMhI2NMPfCMffNWE/IW\nxTitYwifeEooey485z0E5DxXXPw6LldKh3UHHfGsHygpKmFw+mDkDeGj332EwVBdUc0Z/3MGmedl\nUr2jmuULlgOQPymfpPQkBt06iNS8VOr313P05aMMun4Qw744jOod1Xzw7HIGHUxh2cPWSjcLXlrJ\npuMHtA4hRgUz7fRS4AlgFG03yDkzrC3zJYLTTruqZbqq5he6JZ7qDzw3tnG5HmgzjTTQc50VTP3B\nTVNuIuc7OWRNzmpt35YqSn5SwtnjzyZ9ZnrL8tcf7/mYpsomyv5YxtinrC85FZurKH2ihPIXOtdr\nUT0syGkwpeIxAAAgAElEQVSnwQwZvQg8i7Xq6VSPmwqCzkhS3pyppmlp+T6XqfD3XDjUVdeReV5m\nm8cyz8ukrrqOY0XHyMpvDRRul5s+5/Xh9LHTrceem0l9Y11Y26h6TjCzjCqNMavD3pI4pzOSFHgm\niq1hGWdjm0suuZFf//qRDje9cc7hazOdzVtW86c1T/Hx/i30GzSYlF7JGJdVfHbe+eexY/uOdgVm\nGZkZVO+obtNDqN5RTUZmRrsNcpKSk6jaWEVzbTM77tpB2rA0+p7bl/ReGR2+79VbNmvRWgwIpofw\njog8LSIXi8hk5xb2lsUpnZHUefH0M/JXiLZw4beC2vTGOYf3xjebt6xmydp5yBfqGDhrCDV9yuh1\np5sxvxwDN8Hy/1tO/bn17TbFufmOmzm84DBVW6owTYaqLVUcXnCYm++4ud1CeM1FzRx97igDPzeQ\nsS+OZfAXBnPybycZmDmEVQX+ZxOt3rKZeWuXkHxvBlMXTyT53gzmrV3C6i2bw/ATVt0RTA/hQvvP\nKR6PGeDK0DcnMXgmnp39GDTx7Fu8LVfhvfAcgNvdzO7d9Yj8L/X1D1BePomkpBSP17QmkdtufPNA\nS+9h5VsLGP7lXKr7VlD1Wi3D5gwjc1xfKssrYQiMmDuCsuVlnHnnmdY3/jlWknn+0vkAvPGTN9hf\nvZ+MzAxuv+N27p53d8v1nYXwykrL6P+5/vS7tB8NBxtIyU4h94FcShccD/ieF7y1sqVoDbD+nG0l\noLWXEF2CmWWkU0vDRGckBSdeggH4LkRrLT4LvOkN+N9Mp/T4AUYNHYmp7UdTWSHpY3IhBZpOW+P9\nmedlUryguOU8ngVmd8+7u00A8OS5Qc61+dcy4ssjkNTW/KQZZSh68nDA96xFa7GjwyEjERkqIi+K\nyGr7/ngRuS/8TUscTg0DoMNICSLQpjfr1/+Z73//xg43vjHk8vqan3D/I2dRW1/Bwdc/IilpIKmD\n+1K/r5GmuiZSUlNITUulekc16bnprecKsCnOhvUbmDdrHjOvmMm8WfNa9lt28g2eqndU0ysjcA5B\ni9ZiRzA5hJeBNcBw+34hVoGaCjGdkZQ4Am16U119OXv2fBxw45vautXU9fshw/7rTEY/O5rcr+dS\n8a+TnFj9EQM+dTbHfn2E6oIaUkgl+XgyhxccZvAFgzvcFMdZ0C59ZnrQ+YaLP31zwPeqRWuxI5g6\nhI3GmKki8h9jzCfsx7YaYyYFfGE4xGAdQndoDUN81R84PGsNSkpmkJmZ3pIzcLvdVFSUkZKSz6BB\n7jZ1CI89NoOSkqMA1PAxw/9rKOln9SEl1VqCovLDUxT/ogjcSZhmISlVSE6BCVPHt8wyKikqIWdk\njt8lr+fNmtem9gCgYlcF9cvqmb90PkvmL+GNV9+grrqOjMwMbr7jZs65/O4O90NwZhkdPF7KaJ1l\n1PNCuB/Cu8AtwDpjzGQRuQj4mTHm8m43srMSLCBA2w16Ei0wxFtC2RGKDXG+8ugYJi6eSlJKayff\n3exm2+xNzP3l4i7/O5l5xUwmvTyp/Xnv2cbv3/2939c5S7V4LhOvokgIC9MeBlYCZ4nIB8BS4Gvd\naJrqBO81khJNrAWDQGsUOc/7W7DO33PFxYVtzllcvJeTJ0o4taftN/KDbxRS11DBU19vO/bfGR0t\naOcvv6CTIeJDhwHBGLMFuBy4BLgfmACkB3yRCjmnO665hejmq0bA+3l/C9YFqlHwPOfChd+m8WQO\nexZso2LPSdzNbva/9iGH/1bIWd/K57wX2479d4Z37YFnviFQfkHFhw6HjHy+SKTIGDMyDO0JLAGH\njHxJlNxCrOUPglmHyDMP4Cknx5qz4f2c291MdXU9OTkrcbke4Bvf+DHf+c5diPwJl/t6xl1wJhWV\nx6lrqOCsb+WT84lRNCZVk5HRduy/M5xtM73zDR3lF3TYKIqFcAtNXxJ7Z5wImzdSi9qikb8aAU8d\nbYjjzckppKVZ53zmmQdwu+8kNfV8XK7ZpJ3ewa+f/gdfeXQMQ84b0ea1/jaz6Yhn7YGnjjbMmTZz\nLAUbYVUHCWYVvYLJIfii39QjzLt2Id7E2rCYM/6flvZFjh79iLS0Ozu9mY2juHgvd911Bnv3/rtN\nTiE5+XZKSspJSvoCAJKUz86D6/l/c0dT11DJwTcKaUyy6gRqq2vZ984+Tp041TLWX3Gygm/e/jiV\npyq79B6D3TBnb872gEtZqOjlNyCIyCoRWenjtgro2nq8KuTiuaAtloaLnN5BTY3Q0OCipoYur1a6\ncOG3qaoawDPPfKVNTuHUqQZgJsaswe1eTdqoH5M7N59hP8nhrG/lc/hvhRQt34+rsZpD/zxE6Wul\nTPjOhJax/hd+sJg9m5tZ9fLaLr3HQPkFx7SpwFjtscYqvzkEEQk4rdQY8/ewtCgQzSEENL+oNG7y\nCrGWP3jssRkcPXqEiooyYABwiuzswQwfntepYaLi4r187WufReRPNDVdxYABw0lOtuoMTpwoxvr/\n2kRKdgO5c4eRfmYGSUnCGWeeR8l/DlH4s124mhpJH53O2V86m6GftL4wnNx+kq3zdjOk33qamx/k\n+TWP0W9Av06/T3/5BU8FG4HCQvJLzteho2jR3RxCRD7wVbfMGzm0ZXltzSv0rCefXBl0DUEgCxd+\nuyVHkJT0ACNH7uCHP3yj3XFfeXQM469sW4cw5LwRFKUfold2HyY937aWgEFCc1MKab3H0FgxnVUv\nr+Wuh2/r9Pv0l1/wNG0qFDAWSjp9ehVhXc0hqCjl1CzE4xBSNAtUX+B5TKAaheLivezcuYPk5AcA\nSE5+gJ07d1BcvK/dsUOHnEHVvnLcrmaOHf0Yt6uZqn3lDBia026s3+Vysf/Vg5gkN0VHP0FV0xre\neHFtl3MJwZg2VXMJsUgDQhyaPq20dc8FDQo9IlB9gecxgWoUnN5BUtIwAJKShuF238nChd9sd+yM\nq+ZSvLiI4k0HqK9rpnjTAYoXF/HJ625tN9a/+zd7qPhnOSPm5jPmuQsY9vV06vvW8Kvv/yYMPwkP\nY8e2VtmrmNDVaacqyk2fVgoF57OX7TA1toaPYjGI+drnwHrc2svA3z4Gnvbt+w9QQFPTi16Pp7a7\n3gWTb6Curornf/wQLncfkpNquXnOVxk35aKWHJKzj8HxkjJyv5ZH+pl1uE0hvUZDzj192bDwn6H8\nEbTjDB3N13xCzPAbEOzZRH6TuMaYbi9VKCLXA78AkoHFxpifdvecqpUTFGJxr4VYSihDx/UFwdQo\nvPLKwU5ds+RYMVlJ36Fv1sOcqn2Sk8UlLcHAc6x/5hUzGf/ZcW3XJxrrZtsft3Xqel3hBIW9bIcC\nDQrRLlAPoXPljZ0kIsnA88A1wBFgo4isNMbsDud148WVDz9MVWX7MeCsfv14+9lnW+47m/DMLyql\nYCNxMQMpmnjvb+x5HwwLFtzP7Nk/8bmPsq9eQmeu63nOXukz2fX+HVSeurbd7KFhI4ex/+/7MTkG\nYwwigpSI3/0QQs0zKExHcwrRzG8OwRjz90C3EFx7GvCRMWa/MeY08CrwuRCcNyFUVVayqV+/djdf\nQQJo3WchBodjopl3XsDzfqA9D7pao+B53bbnHIirebrPGoPmqmYOvHCA5qpmeo/u3eZ+T3HqE1qW\nXVFRKZgd08aIyAoR2S0i+51bCK6dC3juvXfEfsz7+nNEZJOIbFr0t7+F4LKJSxPNodU2L/Bmy+5n\n/fu/wPr1f2bdujfo3/8Fdu/eTVPTUiorp7TcXK4/sHXru12+tpWz+EPL+WoqL8bV/Aqb3m0/DLRn\n7x4GXD+AsuVlFM4upGx5GQOuH8CevXu68e47z+mdalCIXsEklV8CHgcWAJ8G7qUHZycZYxYBiwAt\nTOsmz0RzAdFZwBZLwco7L+D0BNLT8zl16nJgBzk5+QwYcH+XahIC8c5Z7O39nt/fZ3NTM0O+OISk\nVI8cQpOb0t/3/AfztJljKVhWyPyiUl0ELwoF88Gebox5C6uq+ZAx5gngsyG4djHguRpXnv2YCqOW\nNZCicG8Fpzo5FhLK3nUHaWmfZefOHaSl3YnL1URDw2doaDiFy3XSZ01CKO3t/V7A51NSU6jdUdvm\nsdodtaSkRmaS4bSZY2HsWK1RiELB/ItoFJEkYJ+IPIT1od03BNfeCIwRkTPsc94B3BmC8yoP/pLP\n7pRBwMP88cX51JdVtHs+fXA2z7y9qAdaGB28k8Md8R7Dr6n5C273ndTUAJwERmPMVRw5cg15eetw\nuW5k+fKnePfd5fzsZ2vJzR0TsrZA+8kCzhITx4qO0adXHw4/c5gRj4ygz3l9qN1Ry5FnjnDZFZEL\nvNOmQkHhdvYWoVNSo0gwAeG/gAzg68D/AFcCd3f3wsaYZjvArMGadvpbY8yu7p43UWT168cUP7OM\nPDnJZ29TKk8AUFlcwebh2e2ev9hHkIhnnsngYIZ2vOsOqquLgSSqq18GwO124XafxuXKpbR0Kn36\nDOCtt05QWzuQhQu/6XM5iq62xZuzkU3enDwm5U+iam8VW765hUPfO4Sr2UVKagqXXXEZj73wWKfP\nHUrOctk6+yh6dBgQjDEbAexewteNMdWhurgx5q/AX0N1vkTiObW0q/JLzoemJmproU+fEDQqRgVT\nNOato7oD781ynI1tUlNfYufOz1NcvM9nL6ErbfG2YukK8ubktWxkkz0hm8lPTe7SZjnh5lm8Brq5\nTqQFM8toiojsALYDO0Rkm4hcEP6mqXCbPq2UVFcaNDRQW9vx8fHKGf5JS8vv9nRQf+d0NrZJSjrf\n73IUoWrLsaJjZOVntXksKz+LkqLoXG1u2tTWoknNK0RWMEnl3wIPGmNGG2NGA1/Fmnmk4kB6Lxe9\nmxN3i2xfi9KtX/9nvv/9G4NKAvtasM57sxyRz9sb29xOU1OD30XrWl/3WY4evYW0tBs7TEZ7JpQ3\nrN/AvFnzOFV2in999V+U/qN1XN7XRjZRx177aH5RqQaGCAkmILiMMe87d4wx/wB6rqJF9YyGBmpP\nNkTs8pHa/8DXonTV1ZezZ8/HQX0797VgnfdmOWVldcBMXK7VuN3gdg/y2Utofd1faGgop6bmzaB6\nCdOmtuYN0memc+GrF9L/8/3Zu3QvJX8v8bmRTTRq6Sl4BAbVs4JJKv9dRBYCr2CtbfQF4F0RmQxg\njNkSxvapbuoo+ZzVrx9XV56EZqhqdpFmrKCQPrh9ojkeeSeH3W439fVlpKTk8/bbbwYcw/c33r91\n67s0NR2hsnIBIgNobi4BBKsg/+e4XC6SkpLbLVpnva6IysoqRH5JZeXXyM7OYuvWkR0ml73zBqMu\nGUVyUjK7frKL8ZPHc/8D93e4j0G0mDYVmGrVK6wqGKozkHqQ3x3TWg4QeSfA08YYc2VomxSAFqaF\n1fyi0ogtgBctO6R1ZpObQMd6P5eT8z4lJZ/q8Lyd3WTHKUibecVMJr3cdlMcd7Obbfds4/fv/r6b\nP5XIcfYL16mp3dTdHdMcxphPd781Kpy8aw1Ky8txu924kpLI69+/5XHvhe98KVhWGFOrooaS94Jx\nziJ0l1xyI4sXfyeoBevOP/8SfvjDL5CRkUtGhjUTySpa+xXDh7/Q5ljP3kdV1QmefvpeSksrSE9/\nw+9x/jib4jg9BIiRvEEHnH+LBcusmgWdhRRewcwyGioiL4rIavv+eBG5L/xNU8HyXuhuDVCcmkoe\nBLXwnSPR/7P52+Rm4cJvBb1g3TPPPEB19QDKy/v5KVrzv3nOnj0nqKkZ1KVF8Lw3xYmVvEGwnMCg\neYXwCiaH8DLWrCKniqUQ+CPwor8XKBWLfG1y43Y3s3t3PTk5K1m/fg7GuOnffzG7d88gM/NAm2Ob\nm09TXl4J/JrTp7/CyZPnk5KS1qZoLTl5iMf12m6eI/IE9fUPUF4+iaSklHbHefOcYeTkB5xNcXJG\n5sRU3iAYTiGb1iyETzABYZAxZrmIfAdaKoxdYW6XiqCeHjaKlgXtfBWbOWP6aWkdL1j3gx/cTGXl\neaSm3kBT092MGrUjYEWyw+mZjBhxHTU1D3VqITzPJSs8N8WJV54J5/lFpZpbCLFgAkKtiAzE3j1N\nRC4Cwrc7t+q00vJydpeXt9xvam6mvrmZJmDbxx+DPXHgCJB7003WQampFL/2Grm33QZNTW3OZww0\nP5LKipL2a+uHSzQklL155hScBevg7x4L1rWO7xcX72Xnzh0kJ/8KwK41+JTfimRf1wCnDuIWtm9/\nm0cfXdLlDXTinXduQQNDaARTh/AwsBI4S0Q+AJYCXwtrq1SnuN1uxicnt9xSgXSxJxUYw0QRJopY\ny8mmplKcmtoaBJqaWh5zbkUpaaR4BYlE5JlTqKy0FqyDz1FZuaTd+P7Chd+2K5GHAZCUNCxgRbKv\na0Dn6yASnXfdgha0dU8ws4y2iMjlQD4gwF5jjH5aRBFXUhJTXK2jeKWA2xgagOuAPLuHkCVBzTxT\nNs+cQnX1cdxu62dcXe0mOfkP9jHW+P6+ff8BCmhqapta8641CHQN6FwdhLK0DCPZC+XpbKSu8xsQ\nRGQqcNgYU2LnDS4AbgEOicgTxphTPdZKFVBe//5+VjSt5NjJk2xKDfyhpHzraAE7T6+8cjAk1/Cu\nQ/C34mlHeyAkIi1o675AQ0YLgdMAInIZ8FOs4aJKnB3MVNRrcLuZ0tjY7tbgdke6acqLr3WVfK1l\n5ASDaNzxLhpMm6lDSF0VKCAke/QCvgAsMsa8boz5PnB2+JumQiEV2CTS7hZMn6EnZv9EywyjaOCv\nDsJXLkGDQWCaW+iaQDmEZBFJMcY0A1cBc4J8nephAdcrKitjW6DlSVJTyfWRQHYnp4WyiQFF4wyj\nSPBVB2E97rsOQQXmK7egs5ECC/TB/grWwnYngHrgfQARORuddhpVAi1HMeW++5joI7+QZweQ4tde\n8/m6VQVD2UvkVj9NRJ3JWajgadI5eH4DgjHmSRF5CxgGrDWtq+AlodNOo5rn2kaHy8rYVlbW7pgj\nPd2oONWV/Y9VZHgGBqfaGTQ4eAo49GOM2eDjsUJfx6ro4bmPcm5ZGRPtx+tpW5+guq+7+x93ls4u\n6j4nMAC6FIaXYArTVAxrBqbYt4uAKcYwxRi0kKT72u6HEHhns1DShHLoeG7KM7+oNOEXz9OAEOdy\naJ1l9AqwqVcvNvXqRe+kyP7qCzbG/gyjcOzFrCLDc1/nRJ6VpLOF4tARj7xBCVavAKAJKG1sJBm7\n53DffT73TqhvTMZk94LlvXm5rqLd+dMHZ/PM290vRQnF7KJIjeH72ztBK4tjW6KvkaQ9hDjlrF+U\nDGyybxvAWs8IWAt+9074oE82zQ0NJNVV8K9B2e1u9WXtg0Sk+NrTuKeuG2zNgIo9iVrHoAEhDjXR\nmitwAdvsWyFW6Xkd9tK1MS5SY/jg1Az8gcrKKS03l+sPbN36btiuqQnlnuWZX3ACQ7zTIaM41Dsp\nqWX9opzGxpZZRi4gDcjAWqUw1jnf0tPT86mpubHHZvpA5GoGNKHc8/xNV43H4aSI9BBE5DYR2SUi\nbhGZEok2qNgW7Lo/SoWK02OI515DpHoIO4HPYy2gp7rAs/jsSHk5yfZidUlJSdS73eQ2Nrb0ApyI\nm4mVZN5l39/20UfWn83NHO6phhOa2UWBxvD99RICJaC1wEx1hq9eQzzUMUQkIBhj9gCIrs/fZZ7F\nZ1PKy1uGiHa7XNwB/BsrZ+CmtRt4HVYO4U77vucCd03Qsh5SfWMyKTnZpPeBi30kkNMHZ3e7/d2d\nYdSVdX8CFZH1dIGZig/xtqVn1OcQRGQO9sJ6Cx98kDnXXx/hFkU/wapITrWnm463A+9QYyjFSjC7\ngSSPgJxjDJtefLG1Czx2bFSPV3d2DL9tAvqBNtNDAz0XLTShHN28p6s6Yq3XELYcgoisF5GdPm6f\n68x5jDGLjDFTjDFTNBj0jGkzozsYdEWgIrJYKTCLt99JPHJyDLFa5Ba2HoIx5upwnVsFZrC20DRY\nQ0TO8tdOR3ab/efE9i+NS04PIC1tGUePfsSgQXfy9tt3ct11dwMmqgrMNm9Zzcq3FlB6/ABDh5zB\njKvmcsHkG3q8Har7YrHILeqHjFTXJGENHSXR+sGfhxUsJtIaFBKB0wOorxcaGlzU1EBaWmtPoLPJ\n6XDZvGU1S9bOI3f2SCaOmUrVvnKWLJ4HQN9L+vRoW1ToTJvZfk8GICqDQ0QCgojcDPwSGAz8RUS2\nGmOui0RbYpXnpjhHoGWTm6SkJGqx1jBy5Nl/ZmIFhAuwqpU9VzxtEom7KXSOrVvfpanpCJWVCxAZ\nQGXlKbKzB7N1q/WTiZZNaVa+tYDc2SPJPsfqmWSfMxBmw8qXFnDnJd/r0bao0GqzJ8PYBigsjMpe\nQ6RmGb0BvBGJa8eLjjbFcWYg5Xz0EZvsxz0TyTnGULKybWJ2flFpSzc3XCKxoN2TT65st3n9NdcQ\ndbOJSo8fYOKYtomCXvkpFJbt8vMKFWta8kBRupObDhnFof1lZeR6bIpzgf1nJvBXj15B7k03tb4o\nNZW5zzzX5jyPXDnH57pF3V3crqe3zIyVheiGDjmDqn3lLT0EgJp9VYwek6MJ5Tjkayc3iGxw0IAQ\nh9KAYrsnsM2YlhyCExgygGSsRe0cw0+33yGhvsxa3M6br9qEaNaVIrZImHHVXCtnMBuyxvSnal85\nxS8e4evfuD/STVNh5L1hTyS3+dSAEKfqPXoCTgK5GDgTKxh4Lm7X7BYrAz02vMNFkRIrm9c7s4lW\nvrSAA8c3MXTIaK7/7P1cdPVFEW6Z6imRroDWgBCHkpOSSLe//XtOLU22E8+ePQNP8TosEUub118w\n+YY200y1IC0xRWr/Zw0IccBzXSMAl9tNfWMjIkLvtLQ2x7rcbnY3NrY7hyvsrVSdpcFA9fT+zxoQ\n4oDnukYAuWVlpIu0GTbyNN5jyQpj38TPsSqy4rXXpjqvJ3oNGhDikQi59uY4zjARAKmpNDU2MtHr\nw98ATT7WGUwfnB3Sxe1ifQ9lpaJBOHsNGhDiUPFZZwHW6qWbXnyxzXOeNQoljXaw6N2bq+vbf/CH\nYt9kbz095VSpeOa92qqjq8FBA0IU884NOLL69QtYmJb78cdg9xByZsxoefw0kJ6UxO7ycpKTk+k3\nJIc+A3tbT9aHuPGqWzR/oDrDs6DU6TV0pZ5BA0IU884NOKb4CBJtGEOxRw4h3c4Z5BrDsKQkxicn\ns9ulaeRop/kD1RWtvYbWYrd5Qb5WA0Ic8FzXCKwZQ/XGICIYr3xBVnIyU1wujrrd9K2pJs00AKHZ\n9EYpFT26sgyNBoQ44D18lHvTTS11CPVeU0zfHjECgLEnT7F4vy4npZRqpQEhDviqQ9jd2EiyCCO9\njq2oTaEhpR78FKcppRKXBoQ44J1rmFhWxngRdvurLejdu2WoqKfolNPgaUJZRYoGhCjmnRvwfDyQ\nPiJMtPdPBlr2PTgNXFpbQZPL0C+353IGBRt1umlnaUJZRYIGhCgWaGppIP/0U4ewqmAoe3O2h33P\nA6VUbNKAEAcOlJUx0WP/A2eg6AhWIZqjLj2DLy9e2rONU0rFDA0IcSAV2OaxPpHbGJKwttH0rEq+\nrKFBhyKUUn5pQIgTnglkg7W9gTevhU9VlNFksoo0DQhxIDkpifEe00jrGxtJFyHZDhIljU3QuzfU\n9+zMItV52oNTkZQU6Qao8KqotWJ+nz6Rub5ON1UqdmgPIUYEWugukIaUeqt3EEE65VSp2KABIUYE\nXOguNZVcj30PXADGcBq4rLHBKkKr1/WKlFKBaUCIA8WvvdbuMafmgLFjdVw6BmhCWUUDzSHEMw0G\nMUV/VyrSIhIQRORpEflQRLaLyBsiomMZITS/qNSqSNYPGKVUJ0Sqh7AOONcYcz5QCHwnQu2IO842\nero8hVKqsyKSQzDGrPW4uwG4NRLtiCXBLHS3qmAoXNZPewZKqS6JhqTyl4E/+ntSROYAcwAWPvgg\nc66/vqfaFVWCWehub852IHp6BlqDEBxNKKtoEbaAICLrsZbT8faYMebP9jGPAc3AMn/nMcYsAhYB\nsGqVnwX+VbT2DrQGITjR9ntTiSlsAcEYc3Wg50XkHuBG4CrjvfGv6pSWKaZR1DtQSsWeiAwZicj1\nwDeBy40xdZFoQ9zRKaZKqW6K1Cyj54BMYJ2IbBWRX0eoHTGvtXegYtHe3u9pIFdRI1KzjM6OxHXj\nkVYjK6VCJRpmGaku0KUplFKhpktXxDINBkqpENIeQgyKhVlFWoMQmFN7oAFdRRPtIcSYWBoq0hqE\nwKL996cSjwaEWBQDwUApFXs0IMQQnWKqlAonzSHECCcY6CqmSqlw0R5CDPDMG6jYp4vZqWilASFW\naN4grujvUkUjDQhRTvMGSqmeogEhisXSFFOlVOzTgBDtYjAYaFGaf5o/UNFMZxlFqflFpZBTSjRX\nI/viBAMtSvMv1gK8ShwaEKLQqoKhkFMas1NMNRgoFZt0yCjKaL2BUipSNCBEEa03iG+aP1DRTgNC\ntInBJLIKnv5uVTTTgBAltN5AKRVpmlSOAi0zirR3oJSKIA0IERbrM4pUxzR3oGKFBoQIirckshak\n+ac9PxULNIcQaXE2TKQ1CErFLg0IEdJSbxBHwUApFds0IERAvA0VKf80f6BiiRhjIt2GmCUic4wx\niyLdjp6WqO8b9L0n4ntPpPetPYTumRPpBkRIor5v0PeeiBLmfWtAUEopBWhAUEopZdOA0D0JMa7o\nQ6K+b9D3nogS5n1rUlkppRSgPQSllFI2DQhKKaUADQjdIiJPi8iHIrJdRN4QkexIt6mniMhtIrJL\nRNwiMiXS7Qk3EbleRPaKyEci8u1It6cnichvReS4iOyMdFt6koiMEJF3RGS3/W/9vyLdpnDTgNA9\n64BzjTHnA4XAdyLcnp60E/g8EPeluCKSDDwP3ACMB74oIuMj26oe9TJwfaQbEQHNwCPGmPHARcBX\n40jFsaoAAAQiSURBVP33rgGhG4wxa40xzfbdDUBeJNvTk4wxe4wxeyPdjh4yDfjIGLPfGHMaeBX4\nXITb1GOMMe8BpyLdjp5mjDlmjNli/70a2APkRrZV4aUBIXS+DKyOdCNUWOQChz3uHyHOPxhUWyIy\nGvgE8O/ItiS8dD+EDojIeiDHx1OPGWP+bB/zGFb3cllPti3cgnnvSsU7EekLvA58wxhTFen2hJMG\nhA4YY64O9LyI3APcCFxl4qyoo6P3nkCKgREe9/Psx1ScE5FUrGCwzBjzp0i3J9x0yKgbROR64JvA\nDGNMXaTbo8JmIzBGRM4QkTTgDmBlhNukwkxEBHgR2GOMeTbS7ekJGhC65zkgE1gnIltF5NeRblBP\nEZGbReQIcDHwFxFZE+k2hYs9ceAhYA1WYnG5MWZXZFvVc0TkFeBfQL6IHBGR+yLdph5yKfAl4Er7\n//dWEflMpBsVTrp0hVJKKUB7CEoppWwaEJRSSgEaEJRSStk0ICillAI0ICillLJpQFBxRURc9vTA\nnSLymohkdHD8d4M870ERGRTs46EiIjd5LqgmIu8mwuqyKjI0IKh4U2+MmWSMORc4DXylg+ODCggR\ndBPWCqtKhZ0GBBXP3gfOBhCRu0SkwO49LBSRZBH5KZBuP7bMPu7/RGSzvf79nK5cVET62HsIFIjI\nf0Tkc/bj94jIn0TkbyKyT0Se8njNfSJSaL/mNyLynIhcAswAnrbbeJZ9+G32cYUi8qlu/HyUakPX\nMlJxSURSsPYv+JuInAN8AbjUGNMkIr8CZhpjvi0iDxljJnm89MvGmFMikg5sFJHXjTEnO3n5x4C3\njTFftjdNKrAXCgSYhLVqZiOwV0R+CbiA7wOTgWrgbWCbMeafIrISeNMYs8J+XwApxphpdtXs44Cu\nOaVCQgOCijfpIrLV/vv7WGvRzAEuwPqAB0gHjvt5/ddF5Gb77yOAMUBnA8K1wAwRmWff7w2MtP/+\nljGmEkBEdgOjgEHA340xp+zHXwPGBji/s8jaZmB0J9umlF8aEFS8qff6xu8sUrbEGBNwRzsRuQLr\n2/bFxpg6EXkX68O8swS4xXsDIRG5EKtn4HDRtf+Dzjm6+nqlfNIcgkoEbwG3isgQABEZICKj7Oea\n7CWOAfoB5XYwGIe1bWJXrAG+ZgciROQTHRy/EbhcRPrbQ123eDxXjbWAolJhpwFBxT1jzG7ge8Ba\nEdmOtRf2MPvpRcB2O6n8NyBFRPYAP8XaFjUY2+1VQI+IyLPA/wCp9uO77PuB2lcM/BgoAD4ADgKV\n9tOvAo/ayemzfJ9BqdDQ1U6VigIi0tcYU2P3EN4AfmuMeSPS7VKJRXsISkWHJ+xk+E7gAPB/EW6P\nSkDaQ1BKKQVoD0EppZRNA4JSSilAA4JSSimbBgSllFKABgSllFK2/w+b8bwHTOoHKQAAAABJRU5E\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11855c4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "svc = SVC(C=10, kernel=\"poly\", degree=2, random_state=345)\n",
    "svc.fit(X_train, y_train)\n",
    "print(\"accuracy\", svc.score(X_test, y_test))\n",
    "plot_decision_regions(X_std, y, svc)\n",
    "plt.xlabel(\"Petal Length\")\n",
    "plt.ylabel(\"Sepal Length\")\n",
    "plt.legend(loc = \"upper left\")\n",
    "plt.title(\"SVM classifier using gamma = 1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'C': 1.0,\n",
       " 'cache_size': 200,\n",
       " 'class_weight': None,\n",
       " 'coef0': 0.0,\n",
       " 'decision_function_shape': 'ovr',\n",
       " 'degree': 3,\n",
       " 'gamma': 'auto',\n",
       " 'kernel': 'rbf',\n",
       " 'max_iter': -1,\n",
       " 'probability': False,\n",
       " 'random_state': None,\n",
       " 'shrinking': True,\n",
       " 'tol': 0.001,\n",
       " 'verbose': False}"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "SVC().get_params()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 5 folds for each of 300 candidates, totalling 1500 fits\n",
      "Best score(CV):  0.96 \n",
      " Best parameters:  {'C': 4.6415888336127775, 'gamma': 1.0, 'kernel': 'rbf'}\n",
      "CPU times: user 2.76 s, sys: 12.8 ms, total: 2.77 s\n",
      "Wall time: 2.78 s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=1)]: Done 1500 out of 1500 | elapsed:    2.8s finished\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "param_grid = {\n",
    "    \"C\": 10 ** np.linspace(-2, 2, 10),\n",
    "    \"gamma\": 10 ** np.linspace(-1, 2, 10),\n",
    "    \"kernel\": [\"linear\", \"rbf\", \"sigmoid\"]\n",
    "}\n",
    "grid_search = GridSearchCV(cv = 5, estimator=SVC(), \n",
    "                           param_grid=param_grid, scoring=\"accuracy\", verbose=True)\n",
    "grid_search.fit(X_std, y)\n",
    "print(\"Best score(CV): \", grid_search.best_score_, \n",
    "      \"\\n Best parameters: \", grid_search.best_params_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([      0.00001   ,       0.00012915,       0.0016681 ,\n",
       "             0.02154435,       0.27825594,       3.59381366,\n",
       "            46.41588834,     599.48425032,    7742.63682681,  100000.        ])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.set_printoptions(suppress=True)\n",
    "10 ** np.linspace(-5, 5, 10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Credit Default Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>checking_balance</th>\n",
       "      <th>months_loan_duration</th>\n",
       "      <th>credit_history</th>\n",
       "      <th>purpose</th>\n",
       "      <th>amount</th>\n",
       "      <th>savings_balance</th>\n",
       "      <th>employment_length</th>\n",
       "      <th>installment_rate</th>\n",
       "      <th>personal_status</th>\n",
       "      <th>other_debtors</th>\n",
       "      <th>...</th>\n",
       "      <th>property</th>\n",
       "      <th>age</th>\n",
       "      <th>installment_plan</th>\n",
       "      <th>housing</th>\n",
       "      <th>existing_credits</th>\n",
       "      <th>default</th>\n",
       "      <th>dependents</th>\n",
       "      <th>telephone</th>\n",
       "      <th>foreign_worker</th>\n",
       "      <th>job</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>&lt; 0 DM</td>\n",
       "      <td>6</td>\n",
       "      <td>critical</td>\n",
       "      <td>radio/tv</td>\n",
       "      <td>1169</td>\n",
       "      <td>unknown</td>\n",
       "      <td>&gt; 7 yrs</td>\n",
       "      <td>4</td>\n",
       "      <td>single male</td>\n",
       "      <td>none</td>\n",
       "      <td>...</td>\n",
       "      <td>real estate</td>\n",
       "      <td>67</td>\n",
       "      <td>none</td>\n",
       "      <td>own</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>yes</td>\n",
       "      <td>yes</td>\n",
       "      <td>skilled employee</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1 - 200 DM</td>\n",
       "      <td>48</td>\n",
       "      <td>repaid</td>\n",
       "      <td>radio/tv</td>\n",
       "      <td>5951</td>\n",
       "      <td>&lt; 100 DM</td>\n",
       "      <td>1 - 4 yrs</td>\n",
       "      <td>2</td>\n",
       "      <td>female</td>\n",
       "      <td>none</td>\n",
       "      <td>...</td>\n",
       "      <td>real estate</td>\n",
       "      <td>22</td>\n",
       "      <td>none</td>\n",
       "      <td>own</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>none</td>\n",
       "      <td>yes</td>\n",
       "      <td>skilled employee</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>unknown</td>\n",
       "      <td>12</td>\n",
       "      <td>critical</td>\n",
       "      <td>education</td>\n",
       "      <td>2096</td>\n",
       "      <td>&lt; 100 DM</td>\n",
       "      <td>4 - 7 yrs</td>\n",
       "      <td>2</td>\n",
       "      <td>single male</td>\n",
       "      <td>none</td>\n",
       "      <td>...</td>\n",
       "      <td>real estate</td>\n",
       "      <td>49</td>\n",
       "      <td>none</td>\n",
       "      <td>own</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>none</td>\n",
       "      <td>yes</td>\n",
       "      <td>unskilled resident</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>&lt; 0 DM</td>\n",
       "      <td>42</td>\n",
       "      <td>repaid</td>\n",
       "      <td>furniture</td>\n",
       "      <td>7882</td>\n",
       "      <td>&lt; 100 DM</td>\n",
       "      <td>4 - 7 yrs</td>\n",
       "      <td>2</td>\n",
       "      <td>single male</td>\n",
       "      <td>guarantor</td>\n",
       "      <td>...</td>\n",
       "      <td>building society savings</td>\n",
       "      <td>45</td>\n",
       "      <td>none</td>\n",
       "      <td>for free</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>none</td>\n",
       "      <td>yes</td>\n",
       "      <td>skilled employee</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>&lt; 0 DM</td>\n",
       "      <td>24</td>\n",
       "      <td>delayed</td>\n",
       "      <td>car (new)</td>\n",
       "      <td>4870</td>\n",
       "      <td>&lt; 100 DM</td>\n",
       "      <td>1 - 4 yrs</td>\n",
       "      <td>3</td>\n",
       "      <td>single male</td>\n",
       "      <td>none</td>\n",
       "      <td>...</td>\n",
       "      <td>unknown/none</td>\n",
       "      <td>53</td>\n",
       "      <td>none</td>\n",
       "      <td>for free</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>none</td>\n",
       "      <td>yes</td>\n",
       "      <td>skilled employee</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  checking_balance  months_loan_duration credit_history    purpose  amount  \\\n",
       "0           < 0 DM                     6       critical   radio/tv    1169   \n",
       "1       1 - 200 DM                    48         repaid   radio/tv    5951   \n",
       "2          unknown                    12       critical  education    2096   \n",
       "3           < 0 DM                    42         repaid  furniture    7882   \n",
       "4           < 0 DM                    24        delayed  car (new)    4870   \n",
       "\n",
       "  savings_balance employment_length  installment_rate personal_status  \\\n",
       "0         unknown           > 7 yrs                 4     single male   \n",
       "1        < 100 DM         1 - 4 yrs                 2          female   \n",
       "2        < 100 DM         4 - 7 yrs                 2     single male   \n",
       "3        < 100 DM         4 - 7 yrs                 2     single male   \n",
       "4        < 100 DM         1 - 4 yrs                 3     single male   \n",
       "\n",
       "  other_debtors         ...                          property age  \\\n",
       "0          none         ...                       real estate  67   \n",
       "1          none         ...                       real estate  22   \n",
       "2          none         ...                       real estate  49   \n",
       "3     guarantor         ...          building society savings  45   \n",
       "4          none         ...                      unknown/none  53   \n",
       "\n",
       "   installment_plan   housing existing_credits  default  dependents  \\\n",
       "0              none       own                2        1           1   \n",
       "1              none       own                1        2           1   \n",
       "2              none       own                1        1           2   \n",
       "3              none  for free                1        1           2   \n",
       "4              none  for free                2        2           2   \n",
       "\n",
       "   telephone foreign_worker                 job  \n",
       "0        yes            yes    skilled employee  \n",
       "1       none            yes    skilled employee  \n",
       "2       none            yes  unskilled resident  \n",
       "3       none            yes    skilled employee  \n",
       "4       none            yes    skilled employee  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit = pd.read_csv(\"https://raw.githubusercontent.com/abulbasar/data/master/credit-default.csv\")\n",
    "credit.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1000 entries, 0 to 999\n",
      "Data columns (total 21 columns):\n",
      "checking_balance        1000 non-null object\n",
      "months_loan_duration    1000 non-null int64\n",
      "credit_history          1000 non-null object\n",
      "purpose                 1000 non-null object\n",
      "amount                  1000 non-null int64\n",
      "savings_balance         1000 non-null object\n",
      "employment_length       1000 non-null object\n",
      "installment_rate        1000 non-null int64\n",
      "personal_status         1000 non-null object\n",
      "other_debtors           1000 non-null object\n",
      "residence_history       1000 non-null int64\n",
      "property                1000 non-null object\n",
      "age                     1000 non-null int64\n",
      "installment_plan        1000 non-null object\n",
      "housing                 1000 non-null object\n",
      "existing_credits        1000 non-null int64\n",
      "default                 1000 non-null int64\n",
      "dependents              1000 non-null int64\n",
      "telephone               1000 non-null object\n",
      "foreign_worker          1000 non-null object\n",
      "job                     1000 non-null object\n",
      "dtypes: int64(8), object(13)\n",
      "memory usage: 164.1+ KB\n"
     ]
    }
   ],
   "source": [
    "credit.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x119b303c8>"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1185394e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "credit.default.value_counts().plot.bar()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['checking_balance', 'credit_history', 'purpose', 'savings_balance',\n",
       "       'employment_length', 'personal_status', 'other_debtors', 'property',\n",
       "       'installment_plan', 'housing', 'telephone', 'foreign_worker', 'job'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "categorical_columns = credit.select_dtypes([\"O\"]).columns\n",
    "categorical_columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "default_status = credit.default\n",
    "del credit[\"default\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1000 entries, 0 to 999\n",
      "Data columns (total 48 columns):\n",
      "months_loan_duration                     1000 non-null int64\n",
      "amount                                   1000 non-null int64\n",
      "installment_rate                         1000 non-null int64\n",
      "residence_history                        1000 non-null int64\n",
      "age                                      1000 non-null int64\n",
      "existing_credits                         1000 non-null int64\n",
      "dependents                               1000 non-null int64\n",
      "checking_balance_< 0 DM                  1000 non-null uint8\n",
      "checking_balance_> 200 DM                1000 non-null uint8\n",
      "checking_balance_unknown                 1000 non-null uint8\n",
      "credit_history_delayed                   1000 non-null uint8\n",
      "credit_history_fully repaid              1000 non-null uint8\n",
      "credit_history_fully repaid this bank    1000 non-null uint8\n",
      "credit_history_repaid                    1000 non-null uint8\n",
      "purpose_car (new)                        1000 non-null uint8\n",
      "purpose_car (used)                       1000 non-null uint8\n",
      "purpose_domestic appliances              1000 non-null uint8\n",
      "purpose_education                        1000 non-null uint8\n",
      "purpose_furniture                        1000 non-null uint8\n",
      "purpose_others                           1000 non-null uint8\n",
      "purpose_radio/tv                         1000 non-null uint8\n",
      "purpose_repairs                          1000 non-null uint8\n",
      "purpose_retraining                       1000 non-null uint8\n",
      "savings_balance_501 - 1000 DM            1000 non-null uint8\n",
      "savings_balance_< 100 DM                 1000 non-null uint8\n",
      "savings_balance_> 1000 DM                1000 non-null uint8\n",
      "savings_balance_unknown                  1000 non-null uint8\n",
      "employment_length_1 - 4 yrs              1000 non-null uint8\n",
      "employment_length_4 - 7 yrs              1000 non-null uint8\n",
      "employment_length_> 7 yrs                1000 non-null uint8\n",
      "employment_length_unemployed             1000 non-null uint8\n",
      "personal_status_female                   1000 non-null uint8\n",
      "personal_status_married male             1000 non-null uint8\n",
      "personal_status_single male              1000 non-null uint8\n",
      "other_debtors_guarantor                  1000 non-null uint8\n",
      "other_debtors_none                       1000 non-null uint8\n",
      "property_other                           1000 non-null uint8\n",
      "property_real estate                     1000 non-null uint8\n",
      "property_unknown/none                    1000 non-null uint8\n",
      "installment_plan_none                    1000 non-null uint8\n",
      "installment_plan_stores                  1000 non-null uint8\n",
      "housing_own                              1000 non-null uint8\n",
      "housing_rent                             1000 non-null uint8\n",
      "telephone_yes                            1000 non-null uint8\n",
      "foreign_worker_yes                       1000 non-null uint8\n",
      "job_skilled employee                     1000 non-null uint8\n",
      "job_unemployed non-resident              1000 non-null uint8\n",
      "job_unskilled resident                   1000 non-null uint8\n",
      "dtypes: int64(7), uint8(41)\n",
      "memory usage: 94.8 KB\n"
     ]
    }
   ],
   "source": [
    "credit_dummied = pd.get_dummies(credit, columns=categorical_columns, drop_first=True)\n",
    "credit_dummied.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "scaler = StandardScaler()\n",
    "X = scaler.fit_transform(credit_dummied.values.astype(np.float64))\n",
    "y = np.where(default_status == 1.0, 1, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.97777777777777775"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = 1, random_state=100)\n",
    "lr.fit(X_train, y_train)\n",
    "lr.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'class_weight': None,\n",
       " 'criterion': 'gini',\n",
       " 'max_depth': None,\n",
       " 'max_features': None,\n",
       " 'max_leaf_nodes': None,\n",
       " 'min_impurity_decrease': 0.0,\n",
       " 'min_impurity_split': None,\n",
       " 'min_samples_leaf': 1,\n",
       " 'min_samples_split': 2,\n",
       " 'min_weight_fraction_leaf': 0.0,\n",
       " 'presort': False,\n",
       " 'random_state': 123,\n",
       " 'splitter': 'best'}"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "tree = DecisionTreeClassifier(random_state=123)\n",
    "tree.get_params()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Find the best parameters (consider max_depth) for the decision tree\n",
    "model to solve the credit default problem."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 5 folds for each of 162 candidates, totalling 810 fits\n",
      "Best params:  {'max_depth': 7, 'max_leaf_nodes': 14} Best score:  0.745\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=1)]: Done 810 out of 810 | elapsed:    2.5s finished\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "tuning_grid = {\n",
    "    \"max_depth\": range(1, 10),\n",
    "    \"max_leaf_nodes\": range(2, 20)\n",
    "}\n",
    "gs = GridSearchCV(cv=5, estimator=tree, \n",
    "                  param_grid=tuning_grid, scoring=\"accuracy\", verbose=True)\n",
    "\n",
    "gs.fit(X, y)\n",
    "print(\"Best params: \", gs.best_params_, \"Best score: \", gs.best_score_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
